1 module directx.d3d11; 2 /*------------------------------------------------------------------------------------- 3 * 4 * Copyright (c) Microsoft Corporation 5 * 6 *-------------------------------------------------------------------------------------*/ 7 8 version(Windows): 9 version(Direct3D_11): 10 11 public import directx.dxgi; 12 public import directx.d3dcommon; 13 14 enum D3D11_16BIT_INDEX_STRIP_CUT_VALUE = ( 0xffff ); 15 enum D3D11_32BIT_INDEX_STRIP_CUT_VALUE = ( 0xffffffff ); 16 enum D3D11_8BIT_INDEX_STRIP_CUT_VALUE = ( 0xff ); 17 enum D3D11_ARRAY_AXIS_ADDRESS_RANGE_BIT_COUNT = ( 9 ); 18 enum D3D11_CLIP_OR_CULL_DISTANCE_COUNT = ( 8 ); 19 enum D3D11_CLIP_OR_CULL_DISTANCE_ELEMENT_COUNT = ( 2 ); 20 enum D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT = ( 14 ); 21 enum D3D11_COMMONSHADER_CONSTANT_BUFFER_COMPONENTS = ( 4 ); 22 enum D3D11_COMMONSHADER_CONSTANT_BUFFER_COMPONENT_BIT_COUNT = ( 32 ); 23 enum D3D11_COMMONSHADER_CONSTANT_BUFFER_HW_SLOT_COUNT = ( 15 ); 24 enum D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COMPONENTS = ( 4 ); 25 enum D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COUNT = ( 15 ); 26 enum D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READS_PER_INST = ( 1 ); 27 enum D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READ_PORTS = ( 1 ); 28 enum D3D11_COMMONSHADER_FLOWCONTROL_NESTING_LIMIT = ( 64 ); 29 enum D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COMPONENTS = ( 4 ); 30 enum D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COUNT = ( 1 ); 31 enum D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READS_PER_INST = ( 1 ); 32 enum D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READ_PORTS = ( 1 ); 33 enum D3D11_COMMONSHADER_IMMEDIATE_VALUE_COMPONENT_BIT_COUNT = ( 32 ); 34 enum D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_COMPONENTS = ( 1 ); 35 enum D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_COUNT = ( 128 ); 36 enum D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_READS_PER_INST = ( 1 ); 37 enum D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_READ_PORTS = ( 1 ); 38 enum D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT = ( 128 ); 39 enum D3D11_COMMONSHADER_SAMPLER_REGISTER_COMPONENTS = ( 1 ); 40 enum D3D11_COMMONSHADER_SAMPLER_REGISTER_COUNT = ( 16 ); 41 enum D3D11_COMMONSHADER_SAMPLER_REGISTER_READS_PER_INST = ( 1 ); 42 enum D3D11_COMMONSHADER_SAMPLER_REGISTER_READ_PORTS = ( 1 ); 43 enum D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT = ( 16 ); 44 enum D3D11_COMMONSHADER_SUBROUTINE_NESTING_LIMIT = ( 32 ); 45 enum D3D11_COMMONSHADER_TEMP_REGISTER_COMPONENTS = ( 4 ); 46 enum D3D11_COMMONSHADER_TEMP_REGISTER_COMPONENT_BIT_COUNT = ( 32 ); 47 enum D3D11_COMMONSHADER_TEMP_REGISTER_COUNT = ( 4096 ); 48 enum D3D11_COMMONSHADER_TEMP_REGISTER_READS_PER_INST = ( 3 ); 49 enum D3D11_COMMONSHADER_TEMP_REGISTER_READ_PORTS = ( 3 ); 50 enum D3D11_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MAX = ( 10 ); 51 enum D3D11_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MIN = ( -10 ); 52 enum D3D11_COMMONSHADER_TEXEL_OFFSET_MAX_NEGATIVE = ( -8 ); 53 enum D3D11_COMMONSHADER_TEXEL_OFFSET_MAX_POSITIVE = ( 7 ); 54 enum D3D11_CS_4_X_BUCKET00_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = ( 256 ); 55 enum D3D11_CS_4_X_BUCKET00_MAX_NUM_THREADS_PER_GROUP = ( 64 ); 56 enum D3D11_CS_4_X_BUCKET01_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = ( 240 ); 57 enum D3D11_CS_4_X_BUCKET01_MAX_NUM_THREADS_PER_GROUP = ( 68 ); 58 enum D3D11_CS_4_X_BUCKET02_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = ( 224 ); 59 enum D3D11_CS_4_X_BUCKET02_MAX_NUM_THREADS_PER_GROUP = ( 72 ); 60 enum D3D11_CS_4_X_BUCKET03_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = ( 208 ); 61 enum D3D11_CS_4_X_BUCKET03_MAX_NUM_THREADS_PER_GROUP = ( 76 ); 62 enum D3D11_CS_4_X_BUCKET04_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = ( 192 ); 63 enum D3D11_CS_4_X_BUCKET04_MAX_NUM_THREADS_PER_GROUP = ( 84 ); 64 enum D3D11_CS_4_X_BUCKET05_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = ( 176 ); 65 enum D3D11_CS_4_X_BUCKET05_MAX_NUM_THREADS_PER_GROUP = ( 92 ); 66 enum D3D11_CS_4_X_BUCKET06_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = ( 160 ); 67 enum D3D11_CS_4_X_BUCKET06_MAX_NUM_THREADS_PER_GROUP = ( 100 ); 68 enum D3D11_CS_4_X_BUCKET07_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = ( 144 ); 69 enum D3D11_CS_4_X_BUCKET07_MAX_NUM_THREADS_PER_GROUP = ( 112 ); 70 enum D3D11_CS_4_X_BUCKET08_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = ( 128 ); 71 enum D3D11_CS_4_X_BUCKET08_MAX_NUM_THREADS_PER_GROUP = ( 128 ); 72 enum D3D11_CS_4_X_BUCKET09_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = ( 112 ); 73 enum D3D11_CS_4_X_BUCKET09_MAX_NUM_THREADS_PER_GROUP = ( 144 ); 74 enum D3D11_CS_4_X_BUCKET10_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = ( 96 ); 75 enum D3D11_CS_4_X_BUCKET10_MAX_NUM_THREADS_PER_GROUP = ( 168 ); 76 enum D3D11_CS_4_X_BUCKET11_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = ( 80 ); 77 enum D3D11_CS_4_X_BUCKET11_MAX_NUM_THREADS_PER_GROUP = ( 204 ); 78 enum D3D11_CS_4_X_BUCKET12_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = ( 64 ); 79 enum D3D11_CS_4_X_BUCKET12_MAX_NUM_THREADS_PER_GROUP = ( 256 ); 80 enum D3D11_CS_4_X_BUCKET13_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = ( 48 ); 81 enum D3D11_CS_4_X_BUCKET13_MAX_NUM_THREADS_PER_GROUP = ( 340 ); 82 enum D3D11_CS_4_X_BUCKET14_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = ( 32 ); 83 enum D3D11_CS_4_X_BUCKET14_MAX_NUM_THREADS_PER_GROUP = ( 512 ); 84 enum D3D11_CS_4_X_BUCKET15_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = ( 16 ); 85 enum D3D11_CS_4_X_BUCKET15_MAX_NUM_THREADS_PER_GROUP = ( 768 ); 86 enum D3D11_CS_4_X_DISPATCH_MAX_THREAD_GROUPS_IN_Z_DIMENSION = ( 1 ); 87 enum D3D11_CS_4_X_RAW_UAV_BYTE_ALIGNMENT = ( 256 ); 88 enum D3D11_CS_4_X_THREAD_GROUP_MAX_THREADS_PER_GROUP = ( 768 ); 89 enum D3D11_CS_4_X_THREAD_GROUP_MAX_X = ( 768 ); 90 enum D3D11_CS_4_X_THREAD_GROUP_MAX_Y = ( 768 ); 91 enum D3D11_CS_4_X_UAV_REGISTER_COUNT = ( 1 ); 92 enum D3D11_CS_DISPATCH_MAX_THREAD_GROUPS_PER_DIMENSION = ( 65535 ); 93 enum D3D11_CS_TGSM_REGISTER_COUNT = ( 8192 ); 94 enum D3D11_CS_TGSM_REGISTER_READS_PER_INST = ( 1 ); 95 enum D3D11_CS_TGSM_RESOURCE_REGISTER_COMPONENTS = ( 1 ); 96 enum D3D11_CS_TGSM_RESOURCE_REGISTER_READ_PORTS = ( 1 ); 97 enum D3D11_CS_THREAD_GROUP_MAX_THREADS_PER_GROUP = ( 1024 ); 98 enum D3D11_CS_THREAD_GROUP_MAX_X = ( 1024 ); 99 enum D3D11_CS_THREAD_GROUP_MAX_Y = ( 1024 ); 100 enum D3D11_CS_THREAD_GROUP_MAX_Z = ( 64 ); 101 enum D3D11_CS_THREAD_GROUP_MIN_X = ( 1 ); 102 enum D3D11_CS_THREAD_GROUP_MIN_Y = ( 1 ); 103 enum D3D11_CS_THREAD_GROUP_MIN_Z = ( 1 ); 104 enum D3D11_CS_THREAD_LOCAL_TEMP_REGISTER_POOL = ( 16384 ); 105 enum D3D11_DEFAULT_BLEND_FACTOR_ALPHA = ( 1.0f ); 106 enum D3D11_DEFAULT_BLEND_FACTOR_BLUE = ( 1.0f ); 107 enum D3D11_DEFAULT_BLEND_FACTOR_GREEN = ( 1.0f ); 108 enum D3D11_DEFAULT_BLEND_FACTOR_RED = ( 1.0f ); 109 enum D3D11_DEFAULT_BORDER_COLOR_COMPONENT = ( 0.0f ); 110 enum D3D11_DEFAULT_DEPTH_BIAS = ( 0 ); 111 enum D3D11_DEFAULT_DEPTH_BIAS_CLAMP = ( 0.0f ); 112 enum D3D11_DEFAULT_MAX_ANISOTROPY = ( 16 ); 113 enum D3D11_DEFAULT_MIP_LOD_BIAS = ( 0.0f ); 114 enum D3D11_DEFAULT_RENDER_TARGET_ARRAY_INDEX = ( 0 ); 115 enum D3D11_DEFAULT_SAMPLE_MASK = ( 0xffffffff ); 116 enum D3D11_DEFAULT_SCISSOR_ENDX = ( 0 ); 117 enum D3D11_DEFAULT_SCISSOR_ENDY = ( 0 ); 118 enum D3D11_DEFAULT_SCISSOR_STARTX = ( 0 ); 119 enum D3D11_DEFAULT_SCISSOR_STARTY = ( 0 ); 120 enum D3D11_DEFAULT_SLOPE_SCALED_DEPTH_BIAS = ( 0.0f ); 121 enum D3D11_DEFAULT_STENCIL_READ_MASK = ( 0xff ); 122 enum D3D11_DEFAULT_STENCIL_REFERENCE = ( 0 ); 123 enum D3D11_DEFAULT_STENCIL_WRITE_MASK = ( 0xff ); 124 enum D3D11_DEFAULT_VIEWPORT_AND_SCISSORRECT_INDEX = ( 0 ); 125 enum D3D11_DEFAULT_VIEWPORT_HEIGHT = ( 0 ); 126 enum D3D11_DEFAULT_VIEWPORT_MAX_DEPTH = ( 0.0f ); 127 enum D3D11_DEFAULT_VIEWPORT_MIN_DEPTH = ( 0.0f ); 128 enum D3D11_DEFAULT_VIEWPORT_TOPLEFTX = ( 0 ); 129 enum D3D11_DEFAULT_VIEWPORT_TOPLEFTY = ( 0 ); 130 enum D3D11_DEFAULT_VIEWPORT_WIDTH = ( 0 ); 131 enum D3D11_DS_INPUT_CONTROL_POINTS_MAX_TOTAL_SCALARS = ( 3968 ); 132 enum D3D11_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENTS = ( 4 ); 133 enum D3D11_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT = ( 32 ); 134 enum D3D11_DS_INPUT_CONTROL_POINT_REGISTER_COUNT = ( 32 ); 135 enum D3D11_DS_INPUT_CONTROL_POINT_REGISTER_READS_PER_INST = ( 2 ); 136 enum D3D11_DS_INPUT_CONTROL_POINT_REGISTER_READ_PORTS = ( 1 ); 137 enum D3D11_DS_INPUT_DOMAIN_POINT_REGISTER_COMPONENTS = ( 3 ); 138 enum D3D11_DS_INPUT_DOMAIN_POINT_REGISTER_COMPONENT_BIT_COUNT = ( 32 ); 139 enum D3D11_DS_INPUT_DOMAIN_POINT_REGISTER_COUNT = ( 1 ); 140 enum D3D11_DS_INPUT_DOMAIN_POINT_REGISTER_READS_PER_INST = ( 2 ); 141 enum D3D11_DS_INPUT_DOMAIN_POINT_REGISTER_READ_PORTS = ( 1 ); 142 enum D3D11_DS_INPUT_PATCH_CONSTANT_REGISTER_COMPONENTS = ( 4 ); 143 enum D3D11_DS_INPUT_PATCH_CONSTANT_REGISTER_COMPONENT_BIT_COUNT = ( 32 ); 144 enum D3D11_DS_INPUT_PATCH_CONSTANT_REGISTER_COUNT = ( 32 ); 145 enum D3D11_DS_INPUT_PATCH_CONSTANT_REGISTER_READS_PER_INST = ( 2 ); 146 enum D3D11_DS_INPUT_PATCH_CONSTANT_REGISTER_READ_PORTS = ( 1 ); 147 enum D3D11_DS_OUTPUT_REGISTER_COMPONENTS = ( 4 ); 148 enum D3D11_DS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT = ( 32 ); 149 enum D3D11_DS_OUTPUT_REGISTER_COUNT = ( 32 ); 150 enum D3D11_FLOAT16_FUSED_TOLERANCE_IN_ULP = ( 0.6 ); 151 enum D3D11_FLOAT32_MAX = ( 3.402823466e+38f ); 152 enum D3D11_FLOAT32_TO_INTEGER_TOLERANCE_IN_ULP = ( 0.6f ); 153 enum D3D11_FLOAT_TO_SRGB_EXPONENT_DENOMINATOR = ( 2.4f ); 154 enum D3D11_FLOAT_TO_SRGB_EXPONENT_NUMERATOR = ( 1.0f ); 155 enum D3D11_FLOAT_TO_SRGB_OFFSET = ( 0.055f ); 156 enum D3D11_FLOAT_TO_SRGB_SCALE_1 = ( 12.92f ); 157 enum D3D11_FLOAT_TO_SRGB_SCALE_2 = ( 1.055f ); 158 enum D3D11_FLOAT_TO_SRGB_THRESHOLD = ( 0.0031308f ); 159 enum D3D11_FTOI_INSTRUCTION_MAX_INPUT = ( 2147483647.999f ); 160 enum D3D11_FTOI_INSTRUCTION_MIN_INPUT = ( -2147483648.999f ); 161 enum D3D11_FTOU_INSTRUCTION_MAX_INPUT = ( 4294967295.999f ); 162 enum D3D11_FTOU_INSTRUCTION_MIN_INPUT = ( 0.0f ); 163 enum D3D11_GS_INPUT_INSTANCE_ID_READS_PER_INST = ( 2 ); 164 enum D3D11_GS_INPUT_INSTANCE_ID_READ_PORTS = ( 1 ); 165 enum D3D11_GS_INPUT_INSTANCE_ID_REGISTER_COMPONENTS = ( 1 ); 166 enum D3D11_GS_INPUT_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT = ( 32 ); 167 enum D3D11_GS_INPUT_INSTANCE_ID_REGISTER_COUNT = ( 1 ); 168 enum D3D11_GS_INPUT_PRIM_CONST_REGISTER_COMPONENTS = ( 1 ); 169 enum D3D11_GS_INPUT_PRIM_CONST_REGISTER_COMPONENT_BIT_COUNT = ( 32 ); 170 enum D3D11_GS_INPUT_PRIM_CONST_REGISTER_COUNT = ( 1 ); 171 enum D3D11_GS_INPUT_PRIM_CONST_REGISTER_READS_PER_INST = ( 2 ); 172 enum D3D11_GS_INPUT_PRIM_CONST_REGISTER_READ_PORTS = ( 1 ); 173 enum D3D11_GS_INPUT_REGISTER_COMPONENTS = ( 4 ); 174 enum D3D11_GS_INPUT_REGISTER_COMPONENT_BIT_COUNT = ( 32 ); 175 enum D3D11_GS_INPUT_REGISTER_COUNT = ( 32 ); 176 enum D3D11_GS_INPUT_REGISTER_READS_PER_INST = ( 2 ); 177 enum D3D11_GS_INPUT_REGISTER_READ_PORTS = ( 1 ); 178 enum D3D11_GS_INPUT_REGISTER_VERTICES = ( 32 ); 179 enum D3D11_GS_MAX_INSTANCE_COUNT = ( 32 ); 180 enum D3D11_GS_MAX_OUTPUT_VERTEX_COUNT_ACROSS_INSTANCES = ( 1024 ); 181 enum D3D11_GS_OUTPUT_ELEMENTS = ( 32 ); 182 enum D3D11_GS_OUTPUT_REGISTER_COMPONENTS = ( 4 ); 183 enum D3D11_GS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT = ( 32 ); 184 enum D3D11_GS_OUTPUT_REGISTER_COUNT = ( 32 ); 185 enum D3D11_HS_CONTROL_POINT_PHASE_INPUT_REGISTER_COUNT = ( 32 ); 186 enum D3D11_HS_CONTROL_POINT_PHASE_OUTPUT_REGISTER_COUNT = ( 32 ); 187 enum D3D11_HS_CONTROL_POINT_REGISTER_COMPONENTS = ( 4 ); 188 enum D3D11_HS_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT = ( 32 ); 189 enum D3D11_HS_CONTROL_POINT_REGISTER_READS_PER_INST = ( 2 ); 190 enum D3D11_HS_CONTROL_POINT_REGISTER_READ_PORTS = ( 1 ); 191 enum D3D11_HS_FORK_PHASE_INSTANCE_COUNT_UPPER_BOUND = ( 0xffffffff ); 192 enum D3D11_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COMPONENTS = ( 1 ); 193 enum D3D11_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT = ( 32 ); 194 enum D3D11_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COUNT = ( 1 ); 195 enum D3D11_HS_INPUT_FORK_INSTANCE_ID_REGISTER_READS_PER_INST = ( 2 ); 196 enum D3D11_HS_INPUT_FORK_INSTANCE_ID_REGISTER_READ_PORTS = ( 1 ); 197 enum D3D11_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COMPONENTS = ( 1 ); 198 enum D3D11_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT = ( 32 ); 199 enum D3D11_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COUNT = ( 1 ); 200 enum D3D11_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_READS_PER_INST = ( 2 ); 201 enum D3D11_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_READ_PORTS = ( 1 ); 202 enum D3D11_HS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENTS = ( 1 ); 203 enum D3D11_HS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENT_BIT_COUNT = ( 32 ); 204 enum D3D11_HS_INPUT_PRIMITIVE_ID_REGISTER_COUNT = ( 1 ); 205 enum D3D11_HS_INPUT_PRIMITIVE_ID_REGISTER_READS_PER_INST = ( 2 ); 206 enum D3D11_HS_INPUT_PRIMITIVE_ID_REGISTER_READ_PORTS = ( 1 ); 207 enum D3D11_HS_JOIN_PHASE_INSTANCE_COUNT_UPPER_BOUND = ( 0xffffffff ); 208 enum D3D11_HS_MAXTESSFACTOR_LOWER_BOUND = ( 1.0f ); 209 enum D3D11_HS_MAXTESSFACTOR_UPPER_BOUND = ( 64.0f ); 210 enum D3D11_HS_OUTPUT_CONTROL_POINTS_MAX_TOTAL_SCALARS = ( 3968 ); 211 enum D3D11_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COMPONENTS = ( 1 ); 212 enum D3D11_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COMPONENT_BIT_COUNT = ( 32 ); 213 enum D3D11_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COUNT = ( 1 ); 214 enum D3D11_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_READS_PER_INST = ( 2 ); 215 enum D3D11_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_READ_PORTS = ( 1 ); 216 enum D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COMPONENTS = ( 4 ); 217 enum D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COMPONENT_BIT_COUNT = ( 32 ); 218 enum D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COUNT = ( 32 ); 219 enum D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_READS_PER_INST = ( 2 ); 220 enum D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_READ_PORTS = ( 1 ); 221 enum D3D11_IA_DEFAULT_INDEX_BUFFER_OFFSET_IN_BYTES = ( 0 ); 222 enum D3D11_IA_DEFAULT_PRIMITIVE_TOPOLOGY = ( 0 ); 223 enum D3D11_IA_DEFAULT_VERTEX_BUFFER_OFFSET_IN_BYTES = ( 0 ); 224 enum D3D11_IA_INDEX_INPUT_RESOURCE_SLOT_COUNT = ( 1 ); 225 enum D3D11_IA_INSTANCE_ID_BIT_COUNT = ( 32 ); 226 enum D3D11_IA_INTEGER_ARITHMETIC_BIT_COUNT = ( 32 ); 227 enum D3D11_IA_PATCH_MAX_CONTROL_POINT_COUNT = ( 32 ); 228 enum D3D11_IA_PRIMITIVE_ID_BIT_COUNT = ( 32 ); 229 enum D3D11_IA_VERTEX_ID_BIT_COUNT = ( 32 ); 230 enum D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT = ( 32 ); 231 enum D3D11_IA_VERTEX_INPUT_STRUCTURE_ELEMENTS_COMPONENTS = ( 128 ); 232 enum D3D11_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT = ( 32 ); 233 enum D3D11_INTEGER_DIVIDE_BY_ZERO_QUOTIENT = ( 0xffffffff ); 234 enum D3D11_INTEGER_DIVIDE_BY_ZERO_REMAINDER = ( 0xffffffff ); 235 enum D3D11_KEEP_RENDER_TARGETS_AND_DEPTH_STENCIL = ( 0xffffffff ); 236 enum D3D11_KEEP_UNORDERED_ACCESS_VIEWS = ( 0xffffffff ); 237 enum D3D11_LINEAR_GAMMA = ( 1.0f ); 238 enum D3D11_MAJOR_VERSION = ( 11 ); 239 enum D3D11_MAX_BORDER_COLOR_COMPONENT = ( 1.0f ); 240 enum D3D11_MAX_DEPTH = ( 1.0f ); 241 enum D3D11_MAX_MAXANISOTROPY = ( 16 ); 242 enum D3D11_MAX_MULTISAMPLE_SAMPLE_COUNT = ( 32 ); 243 enum D3D11_MAX_POSITION_VALUE = ( 3.402823466e+34f ); 244 enum D3D11_MAX_TEXTURE_DIMENSION_2_TO_EXP = ( 17 ); 245 enum D3D11_MINOR_VERSION = ( 0 ); 246 enum D3D11_MIN_BORDER_COLOR_COMPONENT = ( 0.0f ); 247 enum D3D11_MIN_DEPTH = ( 0.0f ); 248 enum D3D11_MIN_MAXANISOTROPY = ( 0 ); 249 enum D3D11_MIP_LOD_BIAS_MAX = ( 15.99f ); 250 enum D3D11_MIP_LOD_BIAS_MIN = ( -16.0f ); 251 enum D3D11_MIP_LOD_FRACTIONAL_BIT_COUNT = ( 8 ); 252 enum D3D11_MIP_LOD_RANGE_BIT_COUNT = ( 8 ); 253 enum D3D11_MULTISAMPLE_ANTIALIAS_LINE_WIDTH = ( 1.4f ); 254 enum D3D11_NONSAMPLE_FETCH_OUT_OF_RANGE_ACCESS_RESULT = ( 0 ); 255 enum D3D11_PIXEL_ADDRESS_RANGE_BIT_COUNT = ( 15 ); 256 enum D3D11_PRE_SCISSOR_PIXEL_ADDRESS_RANGE_BIT_COUNT = ( 16 ); 257 enum D3D11_PS_CS_UAV_REGISTER_COMPONENTS = ( 1 ); 258 enum D3D11_PS_CS_UAV_REGISTER_COUNT = ( 8 ); 259 enum D3D11_PS_CS_UAV_REGISTER_READS_PER_INST = ( 1 ); 260 enum D3D11_PS_CS_UAV_REGISTER_READ_PORTS = ( 1 ); 261 enum D3D11_PS_FRONTFACING_DEFAULT_VALUE = ( 0xffffffff ); 262 enum D3D11_PS_FRONTFACING_FALSE_VALUE = ( 0 ); 263 enum D3D11_PS_FRONTFACING_TRUE_VALUE = ( 0xffffffff ); 264 enum D3D11_PS_INPUT_REGISTER_COMPONENTS = ( 4 ); 265 enum D3D11_PS_INPUT_REGISTER_COMPONENT_BIT_COUNT = ( 32 ); 266 enum D3D11_PS_INPUT_REGISTER_COUNT = ( 32 ); 267 enum D3D11_PS_INPUT_REGISTER_READS_PER_INST = ( 2 ); 268 enum D3D11_PS_INPUT_REGISTER_READ_PORTS = ( 1 ); 269 enum D3D11_PS_LEGACY_PIXEL_CENTER_FRACTIONAL_COMPONENT = ( 0.0f ); 270 enum D3D11_PS_OUTPUT_DEPTH_REGISTER_COMPONENTS = ( 1 ); 271 enum D3D11_PS_OUTPUT_DEPTH_REGISTER_COMPONENT_BIT_COUNT = ( 32 ); 272 enum D3D11_PS_OUTPUT_DEPTH_REGISTER_COUNT = ( 1 ); 273 enum D3D11_PS_OUTPUT_MASK_REGISTER_COMPONENTS = ( 1 ); 274 enum D3D11_PS_OUTPUT_MASK_REGISTER_COMPONENT_BIT_COUNT = ( 32 ); 275 enum D3D11_PS_OUTPUT_MASK_REGISTER_COUNT = ( 1 ); 276 enum D3D11_PS_OUTPUT_REGISTER_COMPONENTS = ( 4 ); 277 enum D3D11_PS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT = ( 32 ); 278 enum D3D11_PS_OUTPUT_REGISTER_COUNT = ( 8 ); 279 enum D3D11_PS_PIXEL_CENTER_FRACTIONAL_COMPONENT = ( 0.5f ); 280 enum D3D11_RAW_UAV_SRV_BYTE_ALIGNMENT = ( 16 ); 281 enum D3D11_REQ_BLEND_OBJECT_COUNT_PER_DEVICE = ( 4096 ); 282 enum D3D11_REQ_BUFFER_RESOURCE_TEXEL_COUNT_2_TO_EXP = ( 27 ); 283 enum D3D11_REQ_CONSTANT_BUFFER_ELEMENT_COUNT = ( 4096 ); 284 enum D3D11_REQ_DEPTH_STENCIL_OBJECT_COUNT_PER_DEVICE = ( 4096 ); 285 enum D3D11_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP = ( 32 ); 286 enum D3D11_REQ_DRAW_VERTEX_COUNT_2_TO_EXP = ( 32 ); 287 enum D3D11_REQ_FILTERING_HW_ADDRESSABLE_RESOURCE_DIMENSION = ( 16384 ); 288 enum D3D11_REQ_GS_INVOCATION_32BIT_OUTPUT_COMPONENT_LIMIT = ( 1024 ); 289 enum D3D11_REQ_IMMEDIATE_CONSTANT_BUFFER_ELEMENT_COUNT = ( 4096 ); 290 enum D3D11_REQ_MAXANISOTROPY = ( 16 ); 291 enum D3D11_REQ_MIP_LEVELS = ( 15 ); 292 enum D3D11_REQ_MULTI_ELEMENT_STRUCTURE_SIZE_IN_BYTES = ( 2048 ); 293 enum D3D11_REQ_RASTERIZER_OBJECT_COUNT_PER_DEVICE = ( 4096 ); 294 enum D3D11_REQ_RENDER_TO_BUFFER_WINDOW_WIDTH = ( 16384 ); 295 enum D3D11_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_A_TERM = ( 128 ); 296 enum D3D11_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_B_TERM = ( 0.25f ); 297 enum D3D11_REQ_RESOURCE_VIEW_COUNT_PER_DEVICE_2_TO_EXP = ( 20 ); 298 enum D3D11_REQ_SAMPLER_OBJECT_COUNT_PER_DEVICE = ( 4096 ); 299 enum D3D11_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION = ( 2048 ); 300 enum D3D11_REQ_TEXTURE1D_U_DIMENSION = ( 16384 ); 301 enum D3D11_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION = ( 2048 ); 302 enum D3D11_REQ_TEXTURE2D_U_OR_V_DIMENSION = ( 16384 ); 303 enum D3D11_REQ_TEXTURE3D_U_V_OR_W_DIMENSION = ( 2048 ); 304 enum D3D11_REQ_TEXTURECUBE_DIMENSION = ( 16384 ); 305 enum D3D11_RESINFO_INSTRUCTION_MISSING_COMPONENT_RETVAL = ( 0 ); 306 enum D3D11_SHADER_MAJOR_VERSION = ( 5 ); 307 enum D3D11_SHADER_MAX_INSTANCES = ( 65535 ); 308 enum D3D11_SHADER_MAX_INTERFACES = ( 253 ); 309 enum D3D11_SHADER_MAX_INTERFACE_CALL_SITES = ( 4096 ); 310 enum D3D11_SHADER_MAX_TYPES = ( 65535 ); 311 enum D3D11_SHADER_MINOR_VERSION = ( 0 ); 312 enum D3D11_SHIFT_INSTRUCTION_PAD_VALUE = ( 0 ); 313 enum D3D11_SHIFT_INSTRUCTION_SHIFT_VALUE_BIT_COUNT = ( 5 ); 314 enum D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT = ( 8 ); 315 enum D3D11_SO_BUFFER_MAX_STRIDE_IN_BYTES = ( 2048 ); 316 enum D3D11_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES = ( 512 ); 317 enum D3D11_SO_BUFFER_SLOT_COUNT = ( 4 ); 318 enum D3D11_SO_DDI_REGISTER_INDEX_DENOTING_GAP = ( 0xffffffff ); 319 enum D3D11_SO_NO_RASTERIZED_STREAM = ( 0xffffffff ); 320 enum D3D11_SO_OUTPUT_COMPONENT_COUNT = ( 128 ); 321 enum D3D11_SO_STREAM_COUNT = ( 4 ); 322 enum D3D11_SPEC_DATE_DAY = ( 04 ); 323 enum D3D11_SPEC_DATE_MONTH = ( 06 ); 324 enum D3D11_SPEC_DATE_YEAR = ( 2009 ); 325 enum D3D11_SPEC_VERSION = ( 1.0 ); 326 enum D3D11_SRGB_GAMMA = ( 2.2f ); 327 enum D3D11_SRGB_TO_FLOAT_DENOMINATOR_1 = ( 12.92f ); 328 enum D3D11_SRGB_TO_FLOAT_DENOMINATOR_2 = ( 1.055f ); 329 enum D3D11_SRGB_TO_FLOAT_EXPONENT = ( 2.4f ); 330 enum D3D11_SRGB_TO_FLOAT_OFFSET = ( 0.055f ); 331 enum D3D11_SRGB_TO_FLOAT_THRESHOLD = ( 0.04045f ); 332 enum D3D11_SRGB_TO_FLOAT_TOLERANCE_IN_ULP = ( 0.5f ); 333 enum D3D11_STANDARD_COMPONENT_BIT_COUNT = ( 32 ); 334 enum D3D11_STANDARD_COMPONENT_BIT_COUNT_DOUBLED = ( 64 ); 335 enum D3D11_STANDARD_MAXIMUM_ELEMENT_ALIGNMENT_BYTE_MULTIPLE = ( 4 ); 336 enum D3D11_STANDARD_PIXEL_COMPONENT_COUNT = ( 128 ); 337 enum D3D11_STANDARD_PIXEL_ELEMENT_COUNT = ( 32 ); 338 enum D3D11_STANDARD_VECTOR_SIZE = ( 4 ); 339 enum D3D11_STANDARD_VERTEX_ELEMENT_COUNT = ( 32 ); 340 enum D3D11_STANDARD_VERTEX_TOTAL_COMPONENT_COUNT = ( 64 ); 341 enum D3D11_SUBPIXEL_FRACTIONAL_BIT_COUNT = ( 8 ); 342 enum D3D11_SUBTEXEL_FRACTIONAL_BIT_COUNT = ( 8 ); 343 enum D3D11_TESSELLATOR_MAX_EVEN_TESSELLATION_FACTOR = ( 64 ); 344 enum D3D11_TESSELLATOR_MAX_ISOLINE_DENSITY_TESSELLATION_FACTOR = ( 64 ); 345 enum D3D11_TESSELLATOR_MAX_ODD_TESSELLATION_FACTOR = ( 63 ); 346 enum D3D11_TESSELLATOR_MAX_TESSELLATION_FACTOR = ( 64 ); 347 enum D3D11_TESSELLATOR_MIN_EVEN_TESSELLATION_FACTOR = ( 2 ); 348 enum D3D11_TESSELLATOR_MIN_ISOLINE_DENSITY_TESSELLATION_FACTOR = ( 1 ); 349 enum D3D11_TESSELLATOR_MIN_ODD_TESSELLATION_FACTOR = ( 1 ); 350 enum D3D11_TEXEL_ADDRESS_RANGE_BIT_COUNT = ( 16 ); 351 enum D3D11_UNBOUND_MEMORY_ACCESS_RESULT = ( 0 ); 352 enum D3D11_VIEWPORT_AND_SCISSORRECT_MAX_INDEX = ( 15 ); 353 enum D3D11_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE = ( 16 ); 354 enum D3D11_VIEWPORT_BOUNDS_MAX = ( 32767 ); 355 enum D3D11_VIEWPORT_BOUNDS_MIN = ( -32768 ); 356 enum D3D11_VS_INPUT_REGISTER_COMPONENTS = ( 4 ); 357 enum D3D11_VS_INPUT_REGISTER_COMPONENT_BIT_COUNT = ( 32 ); 358 enum D3D11_VS_INPUT_REGISTER_COUNT = ( 32 ); 359 enum D3D11_VS_INPUT_REGISTER_READS_PER_INST = ( 2 ); 360 enum D3D11_VS_INPUT_REGISTER_READ_PORTS = ( 1 ); 361 enum D3D11_VS_OUTPUT_REGISTER_COMPONENTS = ( 4 ); 362 enum D3D11_VS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT = ( 32 ); 363 enum D3D11_VS_OUTPUT_REGISTER_COUNT = ( 32 ); 364 enum D3D11_WHQL_CONTEXT_COUNT_FOR_RESOURCE_LIMIT = ( 10 ); 365 enum D3D11_WHQL_DRAWINDEXED_INDEX_COUNT_2_TO_EXP = ( 25 ); 366 enum D3D11_WHQL_DRAW_VERTEX_COUNT_2_TO_EXP = ( 25 ); 367 368 enum D3D11_1_UAV_SLOT_COUNT = ( 64 ); 369 370 enum D3D11_2_TILED_RESOURCE_TILE_SIZE_IN_BYTES = ( 65536 ); 371 372 enum _FACD3D11 = 0x87c; 373 enum _FACD3D11DEBUG = _FACD3D11 + 1; 374 375 HRESULT MAKE_D3D11_HRESULT(T)(T code) { 376 return MAKE_HRESULT(1, _FACD3D11, code); 377 } 378 379 HRESULT MAKE_D3D11_STATUS(T)(T code) { 380 return MAKE_HRESULT(0, _FACD3D11, code); 381 } 382 383 enum D3D11_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS = MAKE_D3D11_HRESULT(1); 384 enum D3D11_ERROR_FILE_NOT_FOUND = MAKE_D3D11_HRESULT(2); 385 enum D3D11_ERROR_TOO_MANY_UNIQUE_VIEW_OBJECTS = MAKE_D3D11_HRESULT(3); 386 enum D3D11_ERROR_DEFERRED_CONTEXT_MAP_WITHOUT_INITIAL_DISCARD = MAKE_D3D11_HRESULT(4); 387 388 389 // TODO: move all externs to each symbols where needed, block is error-prone 390 extern(C): 391 392 alias D3D11_INPUT_CLASSIFICATION = int; 393 enum : D3D11_INPUT_CLASSIFICATION 394 { 395 D3D11_INPUT_PER_VERTEX_DATA = 0, 396 D3D11_INPUT_PER_INSTANCE_DATA = 1 397 } 398 399 enum D3D11_APPEND_ALIGNED_ELEMENT = ( 0xffffffff ); 400 401 struct D3D11_INPUT_ELEMENT_DESC 402 { 403 LPCSTR SemanticName; 404 UINT SemanticIndex; 405 DXGI_FORMAT Format; 406 UINT InputSlot; 407 UINT AlignedByteOffset; 408 D3D11_INPUT_CLASSIFICATION InputSlotClass; 409 UINT InstanceDataStepRate; 410 } 411 412 alias D3D11_FILL_MODE = int; 413 enum : D3D11_FILL_MODE 414 { 415 D3D11_FILL_WIREFRAME = 2, 416 D3D11_FILL_SOLID = 3 417 } 418 419 alias D3D_PRIMITIVE_TOPOLOGY D3D11_PRIMITIVE_TOPOLOGY; 420 421 alias D3D_PRIMITIVE D3D11_PRIMITIVE; 422 423 alias D3D11_CULL_MODE = int; 424 enum : D3D11_CULL_MODE 425 { 426 D3D11_CULL_NONE = 1, 427 D3D11_CULL_FRONT = 2, 428 D3D11_CULL_BACK = 3 429 } 430 431 struct D3D11_SO_DECLARATION_ENTRY 432 { 433 UINT Stream; 434 LPCSTR SemanticName; 435 UINT SemanticIndex; 436 BYTE StartComponent; 437 BYTE ComponentCount; 438 BYTE OutputSlot; 439 } 440 441 struct D3D11_VIEWPORT 442 { 443 FLOAT TopLeftX; 444 FLOAT TopLeftY; 445 FLOAT Width; 446 FLOAT Height; 447 FLOAT MinDepth = D3D11_MIN_DEPTH; 448 FLOAT MaxDepth = D3D11_MAX_DEPTH; 449 } 450 451 alias D3D11_RESOURCE_DIMENSION = int; 452 enum : D3D11_RESOURCE_DIMENSION 453 { 454 D3D11_RESOURCE_DIMENSION_UNKNOWN = 0, 455 D3D11_RESOURCE_DIMENSION_BUFFER = 1, 456 D3D11_RESOURCE_DIMENSION_TEXTURE1D = 2, 457 D3D11_RESOURCE_DIMENSION_TEXTURE2D = 3, 458 D3D11_RESOURCE_DIMENSION_TEXTURE3D = 4 459 } 460 461 alias D3D11_SRV_DIMENSION = D3D_SRV_DIMENSION; 462 463 alias D3D11_DSV_DIMENSION = int; 464 enum : D3D11_DSV_DIMENSION 465 { 466 D3D11_DSV_DIMENSION_UNKNOWN = 0, 467 D3D11_DSV_DIMENSION_TEXTURE1D = 1, 468 D3D11_DSV_DIMENSION_TEXTURE1DARRAY = 2, 469 D3D11_DSV_DIMENSION_TEXTURE2D = 3, 470 D3D11_DSV_DIMENSION_TEXTURE2DARRAY = 4, 471 D3D11_DSV_DIMENSION_TEXTURE2DMS = 5, 472 D3D11_DSV_DIMENSION_TEXTURE2DMSARRAY = 6 473 } 474 475 alias D3D11_RTV_DIMENSION = int; 476 enum : D3D11_RTV_DIMENSION 477 { 478 D3D11_RTV_DIMENSION_UNKNOWN = 0, 479 D3D11_RTV_DIMENSION_BUFFER = 1, 480 D3D11_RTV_DIMENSION_TEXTURE1D = 2, 481 D3D11_RTV_DIMENSION_TEXTURE1DARRAY = 3, 482 D3D11_RTV_DIMENSION_TEXTURE2D = 4, 483 D3D11_RTV_DIMENSION_TEXTURE2DARRAY = 5, 484 D3D11_RTV_DIMENSION_TEXTURE2DMS = 6, 485 D3D11_RTV_DIMENSION_TEXTURE2DMSARRAY = 7, 486 D3D11_RTV_DIMENSION_TEXTURE3D = 8 487 } 488 489 alias D3D11_UAV_DIMENSION = int; 490 enum : D3D11_UAV_DIMENSION 491 { 492 D3D11_UAV_DIMENSION_UNKNOWN = 0, 493 D3D11_UAV_DIMENSION_BUFFER = 1, 494 D3D11_UAV_DIMENSION_TEXTURE1D = 2, 495 D3D11_UAV_DIMENSION_TEXTURE1DARRAY = 3, 496 D3D11_UAV_DIMENSION_TEXTURE2D = 4, 497 D3D11_UAV_DIMENSION_TEXTURE2DARRAY = 5, 498 D3D11_UAV_DIMENSION_TEXTURE3D = 8 499 } 500 501 alias D3D11_USAGE = int; 502 enum : D3D11_USAGE 503 { 504 D3D11_USAGE_DEFAULT = 0, 505 D3D11_USAGE_IMMUTABLE = 1, 506 D3D11_USAGE_DYNAMIC = 2, 507 D3D11_USAGE_STAGING = 3 508 } 509 510 alias D3D11_BIND_FLAG = int; 511 enum : D3D11_BIND_FLAG 512 { 513 D3D11_BIND_VERTEX_BUFFER = 0x1L, 514 D3D11_BIND_INDEX_BUFFER = 0x2L, 515 D3D11_BIND_CONSTANT_BUFFER = 0x4L, 516 D3D11_BIND_SHADER_RESOURCE = 0x8L, 517 D3D11_BIND_STREAM_OUTPUT = 0x10L, 518 D3D11_BIND_RENDER_TARGET = 0x20L, 519 D3D11_BIND_DEPTH_STENCIL = 0x40L, 520 D3D11_BIND_UNORDERED_ACCESS = 0x80L 521 } 522 523 alias D3D11_CPU_ACCESS_FLAG = int; 524 enum : D3D11_CPU_ACCESS_FLAG 525 { 526 D3D11_CPU_ACCESS_WRITE = 0x10000L, 527 D3D11_CPU_ACCESS_READ = 0x20000L 528 } 529 530 alias D3D11_RESOURCE_MISC_FLAG = int; 531 enum : D3D11_RESOURCE_MISC_FLAG 532 { 533 D3D11_RESOURCE_MISC_GENERATE_MIPS = 0x1L, 534 D3D11_RESOURCE_MISC_SHARED = 0x2L, 535 D3D11_RESOURCE_MISC_TEXTURECUBE = 0x4L, 536 D3D11_RESOURCE_MISC_DRAWINDIRECT_ARGS = 0x10L, 537 D3D11_RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS = 0x20L, 538 D3D11_RESOURCE_MISC_BUFFER_STRUCTURED = 0x40L, 539 D3D11_RESOURCE_MISC_RESOURCE_CLAMP = 0x80L, 540 D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX = 0x100L, 541 D3D11_RESOURCE_MISC_GDI_COMPATIBLE = 0x200L 542 } 543 544 alias D3D11_MAP = int; 545 enum : D3D11_MAP 546 { 547 D3D11_MAP_READ = 1, 548 D3D11_MAP_WRITE = 2, 549 D3D11_MAP_READ_WRITE = 3, 550 D3D11_MAP_WRITE_DISCARD = 4, 551 D3D11_MAP_WRITE_NO_OVERWRITE = 5 552 } 553 554 alias D3D11_MAP_FLAG = int; 555 enum : D3D11_MAP_FLAG 556 { 557 D3D11_MAP_FLAG_DO_NOT_WAIT = 0x100000L 558 } 559 560 alias D3D11_RAISE_FLAG = int; 561 enum : D3D11_RAISE_FLAG 562 { 563 D3D11_RAISE_FLAG_DRIVER_INTERNAL_ERROR = 0x1L 564 } 565 566 alias D3D11_CLEAR_FLAG = int; 567 enum : D3D11_CLEAR_FLAG 568 { 569 D3D11_CLEAR_DEPTH = 0x1L, 570 D3D11_CLEAR_STENCIL = 0x2L 571 } 572 573 alias RECT D3D11_RECT; 574 575 struct D3D11_BOX 576 { 577 UINT left; 578 UINT top; 579 UINT front; 580 UINT right; 581 UINT bottom; 582 UINT back; 583 } 584 585 586 mixin( uuid!(ID3D11DeviceChild, "1841e5c8-16b0-489b-bcc8-44cfb0d5deae") ); 587 interface ID3D11DeviceChild : IUnknown 588 { 589 extern(Windows): 590 void GetDevice( 591 ID3D11Device* ppDevice); 592 593 HRESULT GetPrivateData( 594 REFGUID guid, 595 UINT* pDataSize, 596 void* pData); 597 598 HRESULT SetPrivateData( 599 REFGUID guid, 600 UINT DataSize, 601 const void* pData); 602 603 HRESULT SetPrivateDataInterface( 604 REFGUID guid, 605 const(IUnknown) pData); 606 607 } 608 609 610 alias D3D11_COMPARISON_FUNC = int; 611 enum : D3D11_COMPARISON_FUNC 612 { 613 D3D11_COMPARISON_NEVER = 1, 614 D3D11_COMPARISON_LESS = 2, 615 D3D11_COMPARISON_EQUAL = 3, 616 D3D11_COMPARISON_LESS_EQUAL = 4, 617 D3D11_COMPARISON_GREATER = 5, 618 D3D11_COMPARISON_NOT_EQUAL = 6, 619 D3D11_COMPARISON_GREATER_EQUAL = 7, 620 D3D11_COMPARISON_ALWAYS = 8 621 } 622 623 alias D3D11_DEPTH_WRITE_MASK = int; 624 enum : D3D11_DEPTH_WRITE_MASK 625 { 626 D3D11_DEPTH_WRITE_MASK_ZERO = 0, 627 D3D11_DEPTH_WRITE_MASK_ALL = 1 628 } 629 630 alias D3D11_STENCIL_OP = int; 631 enum : D3D11_STENCIL_OP 632 { 633 D3D11_STENCIL_OP_KEEP = 1, 634 D3D11_STENCIL_OP_ZERO = 2, 635 D3D11_STENCIL_OP_REPLACE = 3, 636 D3D11_STENCIL_OP_INCR_SAT = 4, 637 D3D11_STENCIL_OP_DECR_SAT = 5, 638 D3D11_STENCIL_OP_INVERT = 6, 639 D3D11_STENCIL_OP_INCR = 7, 640 D3D11_STENCIL_OP_DECR = 8 641 } 642 643 struct D3D11_DEPTH_STENCILOP_DESC 644 { 645 D3D11_STENCIL_OP StencilFailOp; 646 D3D11_STENCIL_OP StencilDepthFailOp; 647 D3D11_STENCIL_OP StencilPassOp; 648 D3D11_COMPARISON_FUNC StencilFunc; 649 } 650 651 struct D3D11_DEPTH_STENCIL_DESC 652 { 653 BOOL DepthEnable = TRUE; 654 D3D11_DEPTH_WRITE_MASK DepthWriteMask = D3D11_DEPTH_WRITE_MASK_ALL; 655 D3D11_COMPARISON_FUNC DepthFunc = D3D11_COMPARISON_LESS; 656 BOOL StencilEnable = FALSE; 657 UINT8 StencilReadMask = D3D11_DEFAULT_STENCIL_READ_MASK; 658 UINT8 StencilWriteMask = D3D11_DEFAULT_STENCIL_WRITE_MASK; 659 D3D11_DEPTH_STENCILOP_DESC FrontFace = { D3D11_STENCIL_OP_KEEP, D3D11_STENCIL_OP_KEEP, D3D11_STENCIL_OP_KEEP, D3D11_COMPARISON_ALWAYS }; 660 D3D11_DEPTH_STENCILOP_DESC BackFace = { D3D11_STENCIL_OP_KEEP, D3D11_STENCIL_OP_KEEP, D3D11_STENCIL_OP_KEEP, D3D11_COMPARISON_ALWAYS }; 661 } 662 663 664 mixin( uuid!(ID3D11DepthStencilState, "03823efb-8d8f-4e1c-9aa2-f64bb2cbfdf1") ); 665 interface ID3D11DepthStencilState : ID3D11DeviceChild 666 { 667 extern(Windows): 668 void GetDesc( 669 D3D11_DEPTH_STENCIL_DESC* pDesc); 670 } 671 672 673 alias D3D11_BLEND = int; 674 enum : D3D11_BLEND 675 { 676 D3D11_BLEND_ZERO = 1, 677 D3D11_BLEND_ONE = 2, 678 D3D11_BLEND_SRC_COLOR = 3, 679 D3D11_BLEND_INV_SRC_COLOR = 4, 680 D3D11_BLEND_SRC_ALPHA = 5, 681 D3D11_BLEND_INV_SRC_ALPHA = 6, 682 D3D11_BLEND_DEST_ALPHA = 7, 683 D3D11_BLEND_INV_DEST_ALPHA = 8, 684 D3D11_BLEND_DEST_COLOR = 9, 685 D3D11_BLEND_INV_DEST_COLOR = 10, 686 D3D11_BLEND_SRC_ALPHA_SAT = 11, 687 D3D11_BLEND_BLEND_FACTOR = 14, 688 D3D11_BLEND_INV_BLEND_FACTOR = 15, 689 D3D11_BLEND_SRC1_COLOR = 16, 690 D3D11_BLEND_INV_SRC1_COLOR = 17, 691 D3D11_BLEND_SRC1_ALPHA = 18, 692 D3D11_BLEND_INV_SRC1_ALPHA = 19 693 } 694 695 alias D3D11_BLEND_OP = int; 696 enum : D3D11_BLEND_OP 697 { 698 D3D11_BLEND_OP_ADD = 1, 699 D3D11_BLEND_OP_SUBTRACT = 2, 700 D3D11_BLEND_OP_REV_SUBTRACT = 3, 701 D3D11_BLEND_OP_MIN = 4, 702 D3D11_BLEND_OP_MAX = 5 703 } 704 705 alias D3D11_COLOR_WRITE_ENABLE = int; 706 enum : D3D11_COLOR_WRITE_ENABLE 707 { 708 D3D11_COLOR_WRITE_ENABLE_RED = 1, 709 D3D11_COLOR_WRITE_ENABLE_GREEN = 2, 710 D3D11_COLOR_WRITE_ENABLE_BLUE = 4, 711 D3D11_COLOR_WRITE_ENABLE_ALPHA = 8, 712 D3D11_COLOR_WRITE_ENABLE_ALL = ( ( ( D3D11_COLOR_WRITE_ENABLE_RED | D3D11_COLOR_WRITE_ENABLE_GREEN ) | D3D11_COLOR_WRITE_ENABLE_BLUE ) | D3D11_COLOR_WRITE_ENABLE_ALPHA ) 713 } 714 715 struct D3D11_RENDER_TARGET_BLEND_DESC 716 { 717 BOOL BlendEnable; 718 D3D11_BLEND SrcBlend; 719 D3D11_BLEND DestBlend; 720 D3D11_BLEND_OP BlendOp; 721 D3D11_BLEND SrcBlendAlpha; 722 D3D11_BLEND DestBlendAlpha; 723 D3D11_BLEND_OP BlendOpAlpha; 724 UINT8 RenderTargetWriteMask; 725 } 726 727 // TODO: move Init() to CTFE and assign its result to RenderTarget initializer 728 struct D3D11_BLEND_DESC 729 { 730 BOOL AlphaToCoverageEnable = FALSE; 731 BOOL IndependentBlendEnable = FALSE; 732 D3D11_RENDER_TARGET_BLEND_DESC[8] RenderTarget; 733 734 // hack: 735 // default ctor not allowed in structs 736 void Init() @property 737 { 738 const D3D11_RENDER_TARGET_BLEND_DESC defaultRenderTargetBlendDesc = { 739 FALSE, 740 D3D11_BLEND_ONE, D3D11_BLEND_ZERO, D3D11_BLEND_OP_ADD, 741 D3D11_BLEND_ONE, D3D11_BLEND_ZERO, D3D11_BLEND_OP_ADD, 742 D3D11_COLOR_WRITE_ENABLE_ALL, 743 }; 744 for (UINT i = 0; i < D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT; ++i) 745 RenderTarget[ i ] = defaultRenderTargetBlendDesc; 746 } 747 } 748 749 750 mixin( uuid!(ID3D11BlendState, "75b68faa-347d-4159-8f45-a0640f01cd9a") ); 751 interface ID3D11BlendState : ID3D11DeviceChild 752 { 753 extern(Windows): 754 void GetDesc( 755 D3D11_BLEND_DESC *pDesc); 756 } 757 758 struct D3D11_RASTERIZER_DESC 759 { 760 D3D11_FILL_MODE FillMode = D3D11_FILL_SOLID; 761 D3D11_CULL_MODE CullMode = D3D11_CULL_BACK; 762 BOOL FrontCounterClockwise = FALSE; 763 INT DepthBias = D3D11_DEFAULT_DEPTH_BIAS; 764 FLOAT DepthBiasClamp = D3D11_DEFAULT_DEPTH_BIAS_CLAMP; 765 FLOAT SlopeScaledDepthBias = D3D11_DEFAULT_SLOPE_SCALED_DEPTH_BIAS; 766 BOOL DepthClipEnable = TRUE; 767 BOOL ScissorEnable = FALSE; 768 BOOL MultisampleEnable = FALSE; 769 BOOL AntialiasedLineEnable = FALSE; 770 } 771 772 773 mixin( uuid!(ID3D11RasterizerState, "9bb4ab81-ab1a-4d8f-b506-fc04200b6ee7") ); 774 interface ID3D11RasterizerState : ID3D11DeviceChild 775 { 776 extern(Windows): 777 void GetDesc( 778 D3D11_RASTERIZER_DESC* pDesc); 779 } 780 781 struct D3D11_SUBRESOURCE_DATA 782 { 783 /*const*/ void* pSysMem; // const causes problems in real code 784 UINT SysMemPitch; 785 UINT SysMemSlicePitch; 786 } 787 788 struct D3D11_MAPPED_SUBRESOURCE 789 { 790 void* pData; 791 UINT RowPitch; 792 UINT DepthPitch; 793 } 794 795 796 mixin( uuid!(ID3D11Resource, "dc8e63f3-d12b-4952-b47b-5e45026a862d") ); 797 interface ID3D11Resource : ID3D11DeviceChild 798 { 799 extern(Windows): 800 void GetType( 801 D3D11_RESOURCE_DIMENSION* pResourceDimension); 802 803 void SetEvictionPriority( 804 UINT EvictionPriority); 805 806 UINT GetEvictionPriority(); 807 } 808 809 struct D3D11_BUFFER_DESC 810 { 811 UINT ByteWidth; 812 D3D11_USAGE Usage = D3D11_USAGE_DEFAULT; 813 UINT BindFlags; 814 UINT CPUAccessFlags; 815 UINT MiscFlags; 816 UINT StructureByteStride; 817 } 818 819 820 mixin( uuid!(ID3D11Buffer, "48570b85-d1ee-4fcd-a250-eb350722b037") ); 821 interface ID3D11Buffer : ID3D11Resource 822 { 823 extern(Windows): 824 void GetDesc( 825 D3D11_BUFFER_DESC* pDesc); 826 } 827 828 struct D3D11_TEXTURE1D_DESC 829 { 830 UINT Width; 831 UINT MipLevels; 832 UINT ArraySize = 1; 833 DXGI_FORMAT Format; 834 D3D11_USAGE Usage = D3D11_USAGE_DEFAULT; 835 UINT BindFlags = D3D11_BIND_SHADER_RESOURCE; 836 UINT CPUAccessFlags; 837 UINT MiscFlags; 838 } 839 840 841 mixin( uuid!(ID3D11Texture1D, "f8fb5c27-c6b3-4f75-a4c8-439af2ef564c") ); 842 interface ID3D11Texture1D : ID3D11Resource 843 { 844 extern(Windows): 845 void GetDesc( 846 D3D11_TEXTURE1D_DESC* pDesc); 847 848 } 849 850 struct D3D11_TEXTURE2D_DESC 851 { 852 UINT Width; 853 UINT Height; 854 UINT MipLevels; 855 UINT ArraySize = 1; 856 DXGI_FORMAT Format; 857 DXGI_SAMPLE_DESC SampleDesc = {Quality: 0, Count: 1}; 858 D3D11_USAGE Usage = D3D11_USAGE_DEFAULT; 859 UINT BindFlags = D3D11_BIND_SHADER_RESOURCE; 860 UINT CPUAccessFlags; 861 UINT MiscFlags; 862 } 863 864 865 mixin( uuid!(ID3D11Texture2D, "6f15aaf2-d208-4e89-9ab4-489535d34f9c") ); 866 interface ID3D11Texture2D : ID3D11Resource 867 { 868 extern(Windows): 869 void GetDesc( 870 D3D11_TEXTURE2D_DESC* pDesc); 871 } 872 873 struct D3D11_TEXTURE3D_DESC 874 { 875 UINT Width; 876 UINT Height; 877 UINT Depth; 878 UINT MipLevels; 879 DXGI_FORMAT Format; 880 D3D11_USAGE Usage = D3D11_USAGE_DEFAULT; 881 UINT BindFlags = D3D11_BIND_SHADER_RESOURCE; 882 UINT CPUAccessFlags; 883 UINT MiscFlags; 884 } 885 886 887 mixin( uuid!(ID3D11Texture3D, "037e866e-f56d-4357-a8af-9dabbe6e250e") ); 888 interface ID3D11Texture3D : ID3D11Resource 889 { 890 extern(Windows): 891 void GetDesc( 892 D3D11_TEXTURE3D_DESC* pDesc); 893 } 894 895 alias D3D11_TEXTURECUBE_FACE = int; 896 enum : D3D11_TEXTURECUBE_FACE 897 { 898 D3D11_TEXTURECUBE_FACE_POSITIVE_X = 0, 899 D3D11_TEXTURECUBE_FACE_NEGATIVE_X = 1, 900 D3D11_TEXTURECUBE_FACE_POSITIVE_Y = 2, 901 D3D11_TEXTURECUBE_FACE_NEGATIVE_Y = 3, 902 D3D11_TEXTURECUBE_FACE_POSITIVE_Z = 4, 903 D3D11_TEXTURECUBE_FACE_NEGATIVE_Z = 5 904 } 905 906 907 mixin( uuid!( ID3D11View, "839d1216-bb2e-412b-b7f4-a9dbebe08ed1") ); 908 interface ID3D11View : ID3D11DeviceChild 909 { 910 extern(Windows): 911 void GetResource( 912 ID3D11Resource* ppResource); 913 } 914 915 916 struct D3D11_BUFFER_SRV 917 { 918 union 919 { 920 UINT FirstElement; 921 UINT ElementOffset; 922 } 923 union 924 { 925 UINT NumElements; 926 UINT ElementWidth; 927 } 928 } 929 930 931 alias D3D11_BUFFEREX_SRV_FLAG = int; 932 enum : D3D11_BUFFEREX_SRV_FLAG 933 { 934 D3D11_BUFFEREX_SRV_FLAG_RAW = 0x1 935 } 936 937 938 struct D3D11_BUFFEREX_SRV 939 { 940 UINT FirstElement; 941 UINT NumElements; 942 UINT Flags; 943 } 944 945 946 struct D3D11_TEX1D_SRV 947 { 948 UINT MostDetailedMip; 949 UINT MipLevels; 950 } 951 952 953 struct D3D11_TEX1D_ARRAY_SRV 954 { 955 UINT MostDetailedMip; 956 UINT MipLevels; 957 UINT FirstArraySlice; 958 UINT ArraySize; 959 } 960 961 struct D3D11_TEX2D_SRV 962 { 963 UINT MostDetailedMip; 964 UINT MipLevels; 965 } 966 967 struct D3D11_TEX2D_ARRAY_SRV 968 { 969 UINT MostDetailedMip; 970 UINT MipLevels; 971 UINT FirstArraySlice; 972 UINT ArraySize; 973 } 974 975 struct D3D11_TEX3D_SRV 976 { 977 UINT MostDetailedMip; 978 UINT MipLevels; 979 } 980 981 struct D3D11_TEXCUBE_SRV 982 { 983 UINT MostDetailedMip; 984 UINT MipLevels; 985 } 986 987 struct D3D11_TEXCUBE_ARRAY_SRV 988 { 989 UINT MostDetailedMip; 990 UINT MipLevels; 991 UINT First2DArrayFace; 992 UINT NumCubes; 993 } 994 995 struct D3D11_TEX2DMS_SRV 996 { 997 UINT UnusedField_NothingToDefine; 998 } 999 1000 struct D3D11_TEX2DMS_ARRAY_SRV 1001 { 1002 UINT FirstArraySlice; 1003 UINT ArraySize; 1004 } 1005 1006 struct D3D11_SHADER_RESOURCE_VIEW_DESC 1007 { 1008 DXGI_FORMAT Format = DXGI_FORMAT_UNKNOWN; 1009 D3D11_SRV_DIMENSION ViewDimension; 1010 union 1011 { 1012 D3D11_BUFFER_SRV Buffer; 1013 D3D11_TEX1D_SRV Texture1D; 1014 D3D11_TEX1D_ARRAY_SRV Texture1DArray; 1015 D3D11_TEX2D_SRV Texture2D; 1016 D3D11_TEX2D_ARRAY_SRV Texture2DArray; 1017 D3D11_TEX2DMS_SRV Texture2DMS; 1018 D3D11_TEX2DMS_ARRAY_SRV Texture2DMSArray; 1019 D3D11_TEX3D_SRV Texture3D; 1020 D3D11_TEXCUBE_SRV TextureCube; 1021 D3D11_TEXCUBE_ARRAY_SRV TextureCubeArray; 1022 D3D11_BUFFEREX_SRV BufferEx; 1023 } 1024 1025 this( 1026 D3D11_SRV_DIMENSION viewDimension, 1027 DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN, 1028 UINT mostDetailedMip = 0, // FirstElement for BUFFER 1029 UINT mipLevels = -1, // NumElements for BUFFER 1030 UINT firstArraySlice = 0, // First2DArrayFace for TEXTURECUBEARRAY 1031 UINT arraySize = -1, // NumCubes for TEXTURECUBEARRAY 1032 UINT flags = 0 ) // BUFFEREX only 1033 { 1034 Format = format; 1035 ViewDimension = viewDimension; 1036 switch (viewDimension) 1037 { 1038 case D3D11_SRV_DIMENSION_BUFFER: 1039 Buffer.FirstElement = mostDetailedMip; 1040 Buffer.NumElements = mipLevels; 1041 break; 1042 case D3D11_SRV_DIMENSION_TEXTURE1D: 1043 Texture1D.MostDetailedMip = mostDetailedMip; 1044 Texture1D.MipLevels = mipLevels; 1045 break; 1046 case D3D11_SRV_DIMENSION_TEXTURE1DARRAY: 1047 Texture1DArray.MostDetailedMip = mostDetailedMip; 1048 Texture1DArray.MipLevels = mipLevels; 1049 Texture1DArray.FirstArraySlice = firstArraySlice; 1050 Texture1DArray.ArraySize = arraySize; 1051 break; 1052 case D3D11_SRV_DIMENSION_TEXTURE2D: 1053 Texture2D.MostDetailedMip = mostDetailedMip; 1054 Texture2D.MipLevels = mipLevels; 1055 break; 1056 case D3D11_SRV_DIMENSION_TEXTURE2DARRAY: 1057 Texture2DArray.MostDetailedMip = mostDetailedMip; 1058 Texture2DArray.MipLevels = mipLevels; 1059 Texture2DArray.FirstArraySlice = firstArraySlice; 1060 Texture2DArray.ArraySize = arraySize; 1061 break; 1062 case D3D11_SRV_DIMENSION_TEXTURE2DMS: 1063 break; 1064 case D3D11_SRV_DIMENSION_TEXTURE2DMSARRAY: 1065 Texture2DMSArray.FirstArraySlice = firstArraySlice; 1066 Texture2DMSArray.ArraySize = arraySize; 1067 break; 1068 case D3D11_SRV_DIMENSION_TEXTURE3D: 1069 Texture3D.MostDetailedMip = mostDetailedMip; 1070 Texture3D.MipLevels = mipLevels; 1071 break; 1072 case D3D11_SRV_DIMENSION_TEXTURECUBE: 1073 TextureCube.MostDetailedMip = mostDetailedMip; 1074 TextureCube.MipLevels = mipLevels; 1075 break; 1076 case D3D11_SRV_DIMENSION_TEXTURECUBEARRAY: 1077 TextureCubeArray.MostDetailedMip = mostDetailedMip; 1078 TextureCubeArray.MipLevels = mipLevels; 1079 TextureCubeArray.First2DArrayFace = firstArraySlice; 1080 TextureCubeArray.NumCubes = arraySize; 1081 break; 1082 case D3D11_SRV_DIMENSION_BUFFEREX: 1083 BufferEx.FirstElement = mostDetailedMip; 1084 BufferEx.NumElements = mipLevels; 1085 BufferEx.Flags = flags; 1086 break; 1087 default: break; 1088 } 1089 } 1090 } 1091 1092 1093 mixin( uuid!(ID3D11ShaderResourceView, "b0e06fe0-8192-4e1a-b1ca-36d7414710b2") ); 1094 interface ID3D11ShaderResourceView : ID3D11View 1095 { 1096 extern(Windows): 1097 void GetDesc( 1098 D3D11_SHADER_RESOURCE_VIEW_DESC* pDesc); 1099 } 1100 1101 1102 struct D3D11_BUFFER_RTV 1103 { 1104 union 1105 { 1106 UINT FirstElement; 1107 UINT ElementOffset; 1108 } 1109 union 1110 { 1111 UINT NumElements; 1112 UINT ElementWidth; 1113 } 1114 } 1115 1116 struct D3D11_TEX1D_RTV 1117 { 1118 UINT MipSlice; 1119 } 1120 1121 struct D3D11_TEX1D_ARRAY_RTV 1122 { 1123 UINT MipSlice; 1124 UINT FirstArraySlice; 1125 UINT ArraySize; 1126 } 1127 1128 struct D3D11_TEX2D_RTV 1129 { 1130 UINT MipSlice; 1131 } 1132 1133 struct D3D11_TEX2DMS_RTV 1134 { 1135 UINT UnusedField_NothingToDefine; 1136 } 1137 1138 struct D3D11_TEX2D_ARRAY_RTV 1139 { 1140 UINT MipSlice; 1141 UINT FirstArraySlice; 1142 UINT ArraySize; 1143 } 1144 1145 struct D3D11_TEX2DMS_ARRAY_RTV 1146 { 1147 UINT FirstArraySlice; 1148 UINT ArraySize; 1149 } 1150 1151 struct D3D11_TEX3D_RTV 1152 { 1153 UINT MipSlice; 1154 UINT FirstWSlice; 1155 UINT WSize; 1156 } 1157 1158 struct D3D11_RENDER_TARGET_VIEW_DESC 1159 { 1160 DXGI_FORMAT Format = DXGI_FORMAT_UNKNOWN; 1161 D3D11_RTV_DIMENSION ViewDimension; 1162 union 1163 { 1164 D3D11_BUFFER_RTV Buffer; 1165 D3D11_TEX1D_RTV Texture1D; 1166 D3D11_TEX1D_ARRAY_RTV Texture1DArray; 1167 D3D11_TEX2D_RTV Texture2D; 1168 D3D11_TEX2D_ARRAY_RTV Texture2DArray; 1169 D3D11_TEX2DMS_RTV Texture2DMS; 1170 D3D11_TEX2DMS_ARRAY_RTV Texture2DMSArray; 1171 D3D11_TEX3D_RTV Texture3D; 1172 } 1173 1174 this( 1175 D3D11_RTV_DIMENSION viewDimension, 1176 DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN, 1177 UINT mipSlice = 0, // FirstElement for BUFFER 1178 UINT firstArraySlice = 0, // NumElements for BUFFER, FirstWSlice for TEXTURE3D 1179 UINT arraySize = -1 ) // WSize for TEXTURE3D 1180 { 1181 Format = format; 1182 ViewDimension = viewDimension; 1183 switch (viewDimension) 1184 { 1185 case D3D11_RTV_DIMENSION_BUFFER: 1186 Buffer.FirstElement = mipSlice; 1187 Buffer.NumElements = firstArraySlice; 1188 break; 1189 case D3D11_RTV_DIMENSION_TEXTURE1D: 1190 Texture1D.MipSlice = mipSlice; 1191 break; 1192 case D3D11_RTV_DIMENSION_TEXTURE1DARRAY: 1193 Texture1DArray.MipSlice = mipSlice; 1194 Texture1DArray.FirstArraySlice = firstArraySlice; 1195 Texture1DArray.ArraySize = arraySize; 1196 break; 1197 case D3D11_RTV_DIMENSION_TEXTURE2D: 1198 Texture2D.MipSlice = mipSlice; 1199 break; 1200 case D3D11_RTV_DIMENSION_TEXTURE2DARRAY: 1201 Texture2DArray.MipSlice = mipSlice; 1202 Texture2DArray.FirstArraySlice = firstArraySlice; 1203 Texture2DArray.ArraySize = arraySize; 1204 break; 1205 case D3D11_RTV_DIMENSION_TEXTURE2DMS: 1206 break; 1207 case D3D11_RTV_DIMENSION_TEXTURE2DMSARRAY: 1208 Texture2DMSArray.FirstArraySlice = firstArraySlice; 1209 Texture2DMSArray.ArraySize = arraySize; 1210 break; 1211 case D3D11_RTV_DIMENSION_TEXTURE3D: 1212 Texture3D.MipSlice = mipSlice; 1213 Texture3D.FirstWSlice = firstArraySlice; 1214 Texture3D.WSize = arraySize; 1215 break; 1216 default: break; 1217 } 1218 } 1219 } 1220 1221 1222 mixin( uuid!(ID3D11RenderTargetView, "dfdba067-0b8d-4865-875b-d7b4516cc164") ); 1223 interface ID3D11RenderTargetView : ID3D11View 1224 { 1225 extern(Windows): 1226 void GetDesc( 1227 D3D11_RENDER_TARGET_VIEW_DESC* pDesc); 1228 } 1229 1230 struct D3D11_TEX1D_DSV 1231 { 1232 UINT MipSlice; 1233 } 1234 1235 struct D3D11_TEX1D_ARRAY_DSV 1236 { 1237 UINT MipSlice; 1238 UINT FirstArraySlice; 1239 UINT ArraySize; 1240 } 1241 1242 struct D3D11_TEX2D_DSV 1243 { 1244 UINT MipSlice; 1245 } 1246 1247 struct D3D11_TEX2D_ARRAY_DSV 1248 { 1249 UINT MipSlice; 1250 UINT FirstArraySlice; 1251 UINT ArraySize; 1252 } 1253 1254 struct D3D11_TEX2DMS_DSV 1255 { 1256 UINT UnusedField_NothingToDefine; 1257 } 1258 1259 struct D3D11_TEX2DMS_ARRAY_DSV 1260 { 1261 UINT FirstArraySlice; 1262 UINT ArraySize; 1263 } 1264 1265 1266 alias D3D11_DSV_FLAG = int; 1267 enum : D3D11_DSV_FLAG 1268 { 1269 D3D11_DSV_READ_ONLY_DEPTH = 0x1L, 1270 D3D11_DSV_READ_ONLY_STENCIL = 0x2L 1271 } 1272 1273 struct D3D11_DEPTH_STENCIL_VIEW_DESC 1274 { 1275 DXGI_FORMAT Format = DXGI_FORMAT_UNKNOWN; 1276 D3D11_DSV_DIMENSION ViewDimension; 1277 UINT Flags; 1278 union 1279 { 1280 D3D11_TEX1D_DSV Texture1D; 1281 D3D11_TEX1D_ARRAY_DSV Texture1DArray; 1282 D3D11_TEX2D_DSV Texture2D; 1283 D3D11_TEX2D_ARRAY_DSV Texture2DArray; 1284 D3D11_TEX2DMS_DSV Texture2DMS; 1285 D3D11_TEX2DMS_ARRAY_DSV Texture2DMSArray; 1286 } 1287 1288 this( 1289 D3D11_DSV_DIMENSION viewDimension, 1290 DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN, 1291 UINT mipSlice = 0, 1292 UINT firstArraySlice = 0, 1293 UINT arraySize = -1, 1294 UINT flags = 0 ) 1295 { 1296 Format = format; 1297 ViewDimension = viewDimension; 1298 Flags = flags; 1299 switch (viewDimension) 1300 { 1301 case D3D11_DSV_DIMENSION_TEXTURE1D: 1302 Texture1D.MipSlice = mipSlice; 1303 break; 1304 case D3D11_DSV_DIMENSION_TEXTURE1DARRAY: 1305 Texture1DArray.MipSlice = mipSlice; 1306 Texture1DArray.FirstArraySlice = firstArraySlice; 1307 Texture1DArray.ArraySize = arraySize; 1308 break; 1309 case D3D11_DSV_DIMENSION_TEXTURE2D: 1310 Texture2D.MipSlice = mipSlice; 1311 break; 1312 case D3D11_DSV_DIMENSION_TEXTURE2DARRAY: 1313 Texture2DArray.MipSlice = mipSlice; 1314 Texture2DArray.FirstArraySlice = firstArraySlice; 1315 Texture2DArray.ArraySize = arraySize; 1316 break; 1317 case D3D11_DSV_DIMENSION_TEXTURE2DMS: 1318 break; 1319 case D3D11_DSV_DIMENSION_TEXTURE2DMSARRAY: 1320 Texture2DMSArray.FirstArraySlice = firstArraySlice; 1321 Texture2DMSArray.ArraySize = arraySize; 1322 break; 1323 default: break; 1324 } 1325 } 1326 } 1327 1328 1329 mixin( uuid!(ID3D11DepthStencilView, "9fdac92a-1876-48c3-afad-25b94f84a9b6") ); 1330 interface ID3D11DepthStencilView : ID3D11View 1331 { 1332 extern(Windows): 1333 void GetDesc( 1334 D3D11_DEPTH_STENCIL_VIEW_DESC* pDesc); 1335 } 1336 1337 1338 alias D3D11_BUFFER_UAV_FLAG = int; 1339 enum : D3D11_BUFFER_UAV_FLAG 1340 { 1341 D3D11_BUFFER_UAV_FLAG_RAW = 0x1, 1342 D3D11_BUFFER_UAV_FLAG_APPEND = 0x2, 1343 D3D11_BUFFER_UAV_FLAG_COUNTER = 0x4 1344 } 1345 1346 struct D3D11_BUFFER_UAV 1347 { 1348 UINT FirstElement; 1349 UINT NumElements; 1350 UINT Flags; 1351 } 1352 1353 struct D3D11_TEX1D_UAV 1354 { 1355 UINT MipSlice; 1356 } 1357 1358 struct D3D11_TEX1D_ARRAY_UAV 1359 { 1360 UINT MipSlice; 1361 UINT FirstArraySlice; 1362 UINT ArraySize; 1363 } 1364 1365 struct D3D11_TEX2D_UAV 1366 { 1367 UINT MipSlice; 1368 } 1369 1370 struct D3D11_TEX2D_ARRAY_UAV 1371 { 1372 UINT MipSlice; 1373 UINT FirstArraySlice; 1374 UINT ArraySize; 1375 } 1376 1377 struct D3D11_TEX3D_UAV 1378 { 1379 UINT MipSlice; 1380 UINT FirstWSlice; 1381 UINT WSize; 1382 } 1383 1384 struct D3D11_UNORDERED_ACCESS_VIEW_DESC 1385 { 1386 DXGI_FORMAT Format = DXGI_FORMAT_UNKNOWN; 1387 D3D11_UAV_DIMENSION ViewDimension; 1388 union 1389 { 1390 D3D11_BUFFER_UAV Buffer; 1391 D3D11_TEX1D_UAV Texture1D; 1392 D3D11_TEX1D_ARRAY_UAV Texture1DArray; 1393 D3D11_TEX2D_UAV Texture2D; 1394 D3D11_TEX2D_ARRAY_UAV Texture2DArray; 1395 D3D11_TEX3D_UAV Texture3D; 1396 } 1397 1398 this( 1399 D3D11_UAV_DIMENSION viewDimension, 1400 DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN, 1401 UINT mipSlice = 0, // FirstElement for BUFFER 1402 UINT firstArraySlice = 0, // NumElements for BUFFER, FirstWSlice for TEXTURE3D 1403 UINT arraySize = -1, // WSize for TEXTURE3D 1404 UINT flags = 0 ) // BUFFER only 1405 { 1406 Format = format; 1407 ViewDimension = viewDimension; 1408 switch (viewDimension) 1409 { 1410 case D3D11_UAV_DIMENSION_BUFFER: 1411 Buffer.FirstElement = mipSlice; 1412 Buffer.NumElements = firstArraySlice; 1413 Buffer.Flags = flags; 1414 break; 1415 case D3D11_UAV_DIMENSION_TEXTURE1D: 1416 Texture1D.MipSlice = mipSlice; 1417 break; 1418 case D3D11_UAV_DIMENSION_TEXTURE1DARRAY: 1419 Texture1DArray.MipSlice = mipSlice; 1420 Texture1DArray.FirstArraySlice = firstArraySlice; 1421 Texture1DArray.ArraySize = arraySize; 1422 break; 1423 case D3D11_UAV_DIMENSION_TEXTURE2D: 1424 Texture2D.MipSlice = mipSlice; 1425 break; 1426 case D3D11_UAV_DIMENSION_TEXTURE2DARRAY: 1427 Texture2DArray.MipSlice = mipSlice; 1428 Texture2DArray.FirstArraySlice = firstArraySlice; 1429 Texture2DArray.ArraySize = arraySize; 1430 break; 1431 case D3D11_UAV_DIMENSION_TEXTURE3D: 1432 Texture3D.MipSlice = mipSlice; 1433 Texture3D.FirstWSlice = firstArraySlice; 1434 Texture3D.WSize = arraySize; 1435 break; 1436 default: break; 1437 } 1438 } 1439 } 1440 1441 1442 mixin( uuid!( ID3D11UnorderedAccessView, "28acf509-7f5c-48f6-8611-f316010a6380") ); 1443 interface ID3D11UnorderedAccessView : ID3D11View 1444 { 1445 extern(Windows): 1446 void GetDesc( 1447 D3D11_UNORDERED_ACCESS_VIEW_DESC* pDesc); 1448 } 1449 1450 1451 mixin( uuid!(ID3D11VertexShader, "3b301d64-d678-4289-8897-22f8928b72f3") ); 1452 interface ID3D11VertexShader : ID3D11DeviceChild 1453 { 1454 extern(Windows): 1455 } 1456 1457 1458 mixin( uuid!(ID3D11HullShader, "8e5c6061-628a-4c8e-8264-bbe45cb3d5dd") ); 1459 interface ID3D11HullShader : ID3D11DeviceChild 1460 { 1461 extern(Windows): 1462 } 1463 1464 1465 mixin( uuid!(ID3D11DomainShader, "f582c508-0f36-490c-9977-31eece268cfa") ); 1466 interface ID3D11DomainShader : ID3D11DeviceChild 1467 { 1468 extern(Windows): 1469 } 1470 1471 1472 mixin( uuid!( ID3D11GeometryShader, "38325b96-effb-4022-ba02-2e795b70275c") ); 1473 interface ID3D11GeometryShader : ID3D11DeviceChild 1474 { 1475 extern(Windows): 1476 } 1477 1478 1479 mixin( uuid!(ID3D11PixelShader, "ea82e40d-51dc-4f33-93d4-db7c9125ae8c") ); 1480 interface ID3D11PixelShader : ID3D11DeviceChild 1481 { 1482 extern(Windows): 1483 } 1484 1485 1486 mixin( uuid!( ID3D11ComputeShader, "4f5b196e-c2bd-495e-bd01-1fded38e4969") ); 1487 interface ID3D11ComputeShader : ID3D11DeviceChild 1488 { 1489 extern(Windows): 1490 } 1491 1492 1493 mixin( uuid!( ID3D11InputLayout, "e4819ddc-4cf0-4025-bd26-5de82a3e07b7") ); 1494 interface ID3D11InputLayout : ID3D11DeviceChild 1495 { 1496 extern(Windows): 1497 } 1498 1499 1500 alias D3D11_FILTER = int; 1501 enum : D3D11_FILTER 1502 { 1503 D3D11_FILTER_MIN_MAG_MIP_POINT = 0, 1504 D3D11_FILTER_MIN_MAG_POINT_MIP_LINEAR = 0x1, 1505 D3D11_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x4, 1506 D3D11_FILTER_MIN_POINT_MAG_MIP_LINEAR = 0x5, 1507 D3D11_FILTER_MIN_LINEAR_MAG_MIP_POINT = 0x10, 1508 D3D11_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x11, 1509 D3D11_FILTER_MIN_MAG_LINEAR_MIP_POINT = 0x14, 1510 D3D11_FILTER_MIN_MAG_MIP_LINEAR = 0x15, 1511 D3D11_FILTER_ANISOTROPIC = 0x55, 1512 D3D11_FILTER_COMPARISON_MIN_MAG_MIP_POINT = 0x80, 1513 D3D11_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR = 0x81, 1514 D3D11_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x84, 1515 D3D11_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR = 0x85, 1516 D3D11_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT = 0x90, 1517 D3D11_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x91, 1518 D3D11_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT = 0x94, 1519 D3D11_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR = 0x95, 1520 D3D11_FILTER_COMPARISON_ANISOTROPIC = 0xd5 1521 } 1522 1523 1524 alias D3D11_FILTER_TYPE = int; 1525 enum : D3D11_FILTER_TYPE 1526 { 1527 D3D11_FILTER_TYPE_POINT = 0, 1528 D3D11_FILTER_TYPE_LINEAR = 1 1529 } 1530 1531 enum D3D11_FILTER_TYPE_MASK = ( 0x3 ); 1532 enum D3D11_MIN_FILTER_SHIFT = ( 4 ); 1533 enum D3D11_MAG_FILTER_SHIFT = ( 2 ); 1534 enum D3D11_MIP_FILTER_SHIFT = ( 0 ); 1535 enum D3D11_COMPARISON_FILTERING_BIT = ( 0x80 ); 1536 enum D3D11_ANISOTROPIC_FILTERING_BIT = ( 0x40 ); 1537 1538 D3D11_FILTER D3D11_ENCODE_BASIC_FILTER(T0, T1, T2, T3)( T0 min, T1 mag, T2 mip, T3 bComparison ){ 1539 return ( cast( D3D11_FILTER ) ( 1540 ( ( bComparison ) ? D3D11_COMPARISON_FILTERING_BIT : 0 ) | 1541 ( ( ( min ) & D3D11_FILTER_TYPE_MASK ) << D3D11_MIN_FILTER_SHIFT ) | 1542 ( ( ( mag ) & D3D11_FILTER_TYPE_MASK ) << D3D11_MAG_FILTER_SHIFT ) | 1543 ( ( ( mip ) & D3D11_FILTER_TYPE_MASK ) << D3D11_MIP_FILTER_SHIFT ) ) ); 1544 } 1545 1546 D3D11_FILTER D3D11_ENCODE_ANISOTROPIC_FILTER(T)(T bComparison ){ 1547 return ( cast( D3D11_FILTER ) ( 1548 D3D11_ANISOTROPIC_FILTERING_BIT | 1549 D3D11_ENCODE_BASIC_FILTER( D3D11_FILTER_TYPE.D3D11_FILTER_TYPE_LINEAR, 1550 D3D11_FILTER_TYPE.D3D11_FILTER_TYPE_LINEAR, 1551 D3D11_FILTER_TYPE.D3D11_FILTER_TYPE_LINEAR, 1552 bComparison ))); 1553 } 1554 1555 1556 D3D11_FILTER_TYPE D3D11_DECODE_MAG_FILTER(T)( d3d11Filter ){ 1557 return ( cast( D3D11_FILTER_TYPE ) 1558 ( ( ( d3d11Filter ) >> D3D11_MAG_FILTER_SHIFT ) & D3D11_FILTER_TYPE_MASK ) ) ; 1559 } 1560 1561 1562 D3D11_FILTER_TYPE D3D11_DECODE_MIN_FILTER(T)(T d3d11Filter ){ 1563 return ( cast( D3D11_FILTER_TYPE ) 1564 ( ( ( d3d11Filter ) >> D3D11_MIN_FILTER_SHIFT ) & D3D11_FILTER_TYPE_MASK ) ); 1565 } 1566 1567 bool D3D11_DECODE_IS_COMPARISON_FILTER(T)(T d3d11Filter ){ 1568 return cast(bool)( ( d3d11Filter ) & D3D11_COMPARISON_FILTERING_BIT ); 1569 } 1570 bool D3D11_DECODE_IS_ANISOTROPIC_FILTER(T)(T d3d11Filter ){ 1571 return cast(bool)( ( ( d3d11Filter ) & D3D11_ANISOTROPIC_FILTERING_BIT ) && 1572 ( D3D11_FILTER_TYPE.D3D11_FILTER_TYPE_LINEAR == D3D11_DECODE_MIN_FILTER( d3d11Filter ) ) && 1573 ( D3D11_FILTER_TYPE.D3D11_FILTER_TYPE_LINEAR == D3D11_DECODE_MAG_FILTER( d3d11Filter ) ) && 1574 ( D3D11_FILTER_TYPE.D3D11_FILTER_TYPE_LINEAR == D3D11_DECODE_MIP_FILTER( d3d11Filter ) ) ); 1575 } 1576 1577 1578 alias D3D11_TEXTURE_ADDRESS_MODE = int; 1579 enum : D3D11_TEXTURE_ADDRESS_MODE 1580 { 1581 D3D11_TEXTURE_ADDRESS_WRAP = 1, 1582 D3D11_TEXTURE_ADDRESS_MIRROR = 2, 1583 D3D11_TEXTURE_ADDRESS_CLAMP = 3, 1584 D3D11_TEXTURE_ADDRESS_BORDER = 4, 1585 D3D11_TEXTURE_ADDRESS_MIRROR_ONCE = 5 1586 } 1587 1588 struct D3D11_SAMPLER_DESC 1589 { 1590 D3D11_FILTER Filter = D3D11_FILTER_MIN_MAG_MIP_LINEAR; 1591 D3D11_TEXTURE_ADDRESS_MODE AddressU = D3D11_TEXTURE_ADDRESS_CLAMP; 1592 D3D11_TEXTURE_ADDRESS_MODE AddressV = D3D11_TEXTURE_ADDRESS_CLAMP; 1593 D3D11_TEXTURE_ADDRESS_MODE AddressW = D3D11_TEXTURE_ADDRESS_CLAMP; 1594 FLOAT MipLODBias = 0; 1595 UINT MaxAnisotropy = 1; 1596 D3D11_COMPARISON_FUNC ComparisonFunc = D3D11_COMPARISON_NEVER; 1597 FLOAT[ 4 ] BorderColor = [1.0f, 1.0f, 1.0f, 1.0f]; 1598 FLOAT MinLOD = -3.402823466e+38F; 1599 FLOAT MaxLOD = 3.402823466e+38F; 1600 } 1601 1602 1603 mixin( uuid!( ID3D11SamplerState, "da6fea51-564c-4487-9810-f0d0f9b4e3a5") ); 1604 interface ID3D11SamplerState : ID3D11DeviceChild 1605 { 1606 extern(Windows): 1607 void GetDesc( 1608 D3D11_SAMPLER_DESC* pDesc); 1609 } 1610 1611 1612 alias D3D11_FORMAT_SUPPORT = int; 1613 enum : D3D11_FORMAT_SUPPORT 1614 { 1615 D3D11_FORMAT_SUPPORT_BUFFER = 0x1, 1616 D3D11_FORMAT_SUPPORT_IA_VERTEX_BUFFER = 0x2, 1617 D3D11_FORMAT_SUPPORT_IA_INDEX_BUFFER = 0x4, 1618 D3D11_FORMAT_SUPPORT_SO_BUFFER = 0x8, 1619 D3D11_FORMAT_SUPPORT_TEXTURE1D = 0x10, 1620 D3D11_FORMAT_SUPPORT_TEXTURE2D = 0x20, 1621 D3D11_FORMAT_SUPPORT_TEXTURE3D = 0x40, 1622 D3D11_FORMAT_SUPPORT_TEXTURECUBE = 0x80, 1623 D3D11_FORMAT_SUPPORT_SHADER_LOAD = 0x100, 1624 D3D11_FORMAT_SUPPORT_SHADER_SAMPLE = 0x200, 1625 D3D11_FORMAT_SUPPORT_SHADER_SAMPLE_COMPARISON = 0x400, 1626 D3D11_FORMAT_SUPPORT_SHADER_SAMPLE_MONO_TEXT = 0x800, 1627 D3D11_FORMAT_SUPPORT_MIP = 0x1000, 1628 D3D11_FORMAT_SUPPORT_MIP_AUTOGEN = 0x2000, 1629 D3D11_FORMAT_SUPPORT_RENDER_TARGET = 0x4000, 1630 D3D11_FORMAT_SUPPORT_BLENDABLE = 0x8000, 1631 D3D11_FORMAT_SUPPORT_DEPTH_STENCIL = 0x10000, 1632 D3D11_FORMAT_SUPPORT_CPU_LOCKABLE = 0x20000, 1633 D3D11_FORMAT_SUPPORT_MULTISAMPLE_RESOLVE = 0x40000, 1634 D3D11_FORMAT_SUPPORT_DISPLAY = 0x80000, 1635 D3D11_FORMAT_SUPPORT_CAST_WITHIN_BIT_LAYOUT = 0x100000, 1636 D3D11_FORMAT_SUPPORT_MULTISAMPLE_RENDERTARGET = 0x200000, 1637 D3D11_FORMAT_SUPPORT_MULTISAMPLE_LOAD = 0x400000, 1638 D3D11_FORMAT_SUPPORT_SHADER_GATHER = 0x800000, 1639 D3D11_FORMAT_SUPPORT_BACK_BUFFER_CAST = 0x1000000, 1640 D3D11_FORMAT_SUPPORT_TYPED_UNORDERED_ACCESS_VIEW = 0x2000000, 1641 D3D11_FORMAT_SUPPORT_SHADER_GATHER_COMPARISON = 0x4000000 1642 } 1643 1644 1645 alias D3D11_FORMAT_SUPPORT2 = int; 1646 enum : D3D11_FORMAT_SUPPORT2 1647 { 1648 D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_ADD = 0x1, 1649 D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_BITWISE_OPS = 0x2, 1650 D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_COMPARE_STORE_OR_COMPARE_EXCHANGE = 0x4, 1651 D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_EXCHANGE = 0x8, 1652 D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_SIGNED_MIN_OR_MAX = 0x10, 1653 D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_UNSIGNED_MIN_OR_MAX = 0x20, 1654 D3D11_FORMAT_SUPPORT2_UAV_TYPED_LOAD = 0x40, 1655 D3D11_FORMAT_SUPPORT2_UAV_TYPED_STORE = 0x80 1656 } 1657 1658 1659 mixin( uuid!(ID3D11Asynchronous, "4b35d0cd-1e15-4258-9c98-1b1333f6dd3b") ); 1660 interface ID3D11Asynchronous : ID3D11DeviceChild 1661 { 1662 extern(Windows): 1663 UINT GetDataSize(); 1664 } 1665 1666 1667 alias D3D11_ASYNC_GETDATA_FLAG = int; 1668 enum : D3D11_ASYNC_GETDATA_FLAG 1669 { 1670 D3D11_ASYNC_GETDATA_DONOTFLUSH = 0x1 1671 } 1672 1673 1674 alias D3D11_QUERY = int; 1675 enum : D3D11_QUERY 1676 { 1677 D3D11_QUERY_EVENT = 0, 1678 D3D11_QUERY_OCCLUSION = ( D3D11_QUERY_EVENT + 1 ) , 1679 D3D11_QUERY_TIMESTAMP = ( D3D11_QUERY_OCCLUSION + 1 ) , 1680 D3D11_QUERY_TIMESTAMP_DISJOINT = ( D3D11_QUERY_TIMESTAMP + 1 ) , 1681 D3D11_QUERY_PIPELINE_STATISTICS = ( D3D11_QUERY_TIMESTAMP_DISJOINT + 1 ) , 1682 D3D11_QUERY_OCCLUSION_PREDICATE = ( D3D11_QUERY_PIPELINE_STATISTICS + 1 ) , 1683 D3D11_QUERY_SO_STATISTICS = ( D3D11_QUERY_OCCLUSION_PREDICATE + 1 ) , 1684 D3D11_QUERY_SO_OVERFLOW_PREDICATE = ( D3D11_QUERY_SO_STATISTICS + 1 ) , 1685 D3D11_QUERY_SO_STATISTICS_STREAM0 = ( D3D11_QUERY_SO_OVERFLOW_PREDICATE + 1 ) , 1686 D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM0 = ( D3D11_QUERY_SO_STATISTICS_STREAM0 + 1 ) , 1687 D3D11_QUERY_SO_STATISTICS_STREAM1 = ( D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM0 + 1 ) , 1688 D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM1 = ( D3D11_QUERY_SO_STATISTICS_STREAM1 + 1 ) , 1689 D3D11_QUERY_SO_STATISTICS_STREAM2 = ( D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM1 + 1 ) , 1690 D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM2 = ( D3D11_QUERY_SO_STATISTICS_STREAM2 + 1 ) , 1691 D3D11_QUERY_SO_STATISTICS_STREAM3 = ( D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM2 + 1 ) , 1692 D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM3 = ( D3D11_QUERY_SO_STATISTICS_STREAM3 + 1 ) 1693 } 1694 1695 1696 alias D3D11_QUERY_MISC_FLAG = int; 1697 enum : D3D11_QUERY_MISC_FLAG 1698 { 1699 D3D11_QUERY_MISC_PREDICATEHINT = 0x1 1700 } 1701 1702 struct D3D11_QUERY_DESC 1703 { 1704 D3D11_QUERY Query; 1705 UINT MiscFlags; 1706 } 1707 1708 1709 mixin( uuid!(ID3D11Query, "d6c00747-87b7-425e-b84d-44d108560afd") ); 1710 interface ID3D11Query : ID3D11Asynchronous 1711 { 1712 extern(Windows): 1713 void GetDesc( 1714 D3D11_QUERY_DESC* pDesc); 1715 } 1716 1717 1718 mixin( uuid!(ID3D11Predicate, "9eb576dd-9f77-4d86-81aa-8bab5fe490e2") ); 1719 interface ID3D11Predicate : ID3D11Query 1720 { 1721 extern(Windows): 1722 } 1723 1724 1725 struct D3D11_QUERY_DATA_TIMESTAMP_DISJOINT 1726 { 1727 UINT64 Frequency; 1728 BOOL Disjoint; 1729 } 1730 1731 struct D3D11_QUERY_DATA_PIPELINE_STATISTICS 1732 { 1733 UINT64 IAVertices; 1734 UINT64 IAPrimitives; 1735 UINT64 VSInvocations; 1736 UINT64 GSInvocations; 1737 UINT64 GSPrimitives; 1738 UINT64 CInvocations; 1739 UINT64 CPrimitives; 1740 UINT64 PSInvocations; 1741 UINT64 HSInvocations; 1742 UINT64 DSInvocations; 1743 UINT64 CSInvocations; 1744 } 1745 1746 struct D3D11_QUERY_DATA_SO_STATISTICS 1747 { 1748 UINT64 NumPrimitivesWritten; 1749 UINT64 PrimitivesStorageNeeded; 1750 } 1751 1752 1753 alias D3D11_COUNTER = int; 1754 enum : D3D11_COUNTER 1755 { 1756 D3D11_COUNTER_DEVICE_DEPENDENT_0 = 0x40000000 1757 } 1758 1759 1760 alias D3D11_COUNTER_TYPE = int; 1761 enum : D3D11_COUNTER_TYPE 1762 { 1763 D3D11_COUNTER_TYPE_FLOAT32 = 0, 1764 D3D11_COUNTER_TYPE_UINT16 = ( D3D11_COUNTER_TYPE_FLOAT32 + 1 ) , 1765 D3D11_COUNTER_TYPE_UINT32 = ( D3D11_COUNTER_TYPE_UINT16 + 1 ) , 1766 D3D11_COUNTER_TYPE_UINT64 = ( D3D11_COUNTER_TYPE_UINT32 + 1 ) 1767 } 1768 1769 struct D3D11_COUNTER_DESC 1770 { 1771 D3D11_COUNTER Counter; 1772 UINT MiscFlags; 1773 } 1774 1775 1776 struct D3D11_COUNTER_INFO 1777 { 1778 D3D11_COUNTER LastDeviceDependentCounter; 1779 UINT NumSimultaneousCounters; 1780 UINT8 NumDetectableParallelUnits; 1781 } 1782 1783 1784 mixin( uuid!(ID3D11Counter, "6e8c49fb-a371-4770-b440-29086022b741") ); 1785 interface ID3D11Counter : ID3D11Asynchronous 1786 { 1787 extern(Windows): 1788 void GetDesc( 1789 D3D11_COUNTER_DESC* pDesc); 1790 } 1791 1792 1793 alias D3D11_STANDARD_MULTISAMPLE_QUALITY_LEVELS = int; 1794 enum : D3D11_STANDARD_MULTISAMPLE_QUALITY_LEVELS 1795 { 1796 D3D11_STANDARD_MULTISAMPLE_PATTERN = 0xffffffff, 1797 D3D11_CENTER_MULTISAMPLE_PATTERN = 0xfffffffe 1798 } 1799 1800 1801 alias D3D11_DEVICE_CONTEXT_TYPE = int; 1802 enum : D3D11_DEVICE_CONTEXT_TYPE 1803 { 1804 D3D11_DEVICE_CONTEXT_IMMEDIATE = 0, 1805 D3D11_DEVICE_CONTEXT_DEFERRED = ( D3D11_DEVICE_CONTEXT_IMMEDIATE + 1 ) 1806 } 1807 1808 struct D3D11_CLASS_INSTANCE_DESC 1809 { 1810 UINT InstanceId; 1811 UINT InstanceIndex; 1812 UINT TypeId; 1813 UINT ConstantBuffer; 1814 UINT BaseConstantBufferOffset; 1815 UINT BaseTexture; 1816 UINT BaseSampler; 1817 BOOL Created; 1818 } 1819 1820 1821 mixin( uuid!(ID3D11ClassInstance, "a6cd7faa-b0b7-4a2f-9436-8662a65797cb") ); 1822 interface ID3D11ClassInstance : ID3D11DeviceChild 1823 { 1824 extern(Windows): 1825 void GetClassLinkage( 1826 ID3D11ClassLinkage* ppLinkage); 1827 1828 void GetDesc( 1829 D3D11_CLASS_INSTANCE_DESC* pDesc); 1830 1831 void GetInstanceName( 1832 LPSTR pInstanceName, 1833 SIZE_T* pBufferLength); 1834 1835 void GetTypeName( 1836 LPSTR pTypeName, 1837 SIZE_T* pBufferLength); 1838 } 1839 1840 1841 mixin( uuid!(ID3D11ClassLinkage, "ddf57cba-9543-46e4-a12b-f207a0fe7fed") ); 1842 interface ID3D11ClassLinkage : ID3D11DeviceChild 1843 { 1844 extern(Windows): 1845 HRESULT GetClassInstance( 1846 LPCSTR pClassInstanceName, 1847 UINT InstanceIndex, 1848 ID3D11ClassInstance* ppInstance); 1849 1850 HRESULT CreateClassInstance( 1851 LPCSTR pClassTypeName, 1852 UINT ConstantBufferOffset, 1853 UINT ConstantVectorOffset, 1854 UINT TextureOffset, 1855 UINT SamplerOffset, 1856 ID3D11ClassInstance* ppInstance); 1857 } 1858 1859 1860 mixin( uuid!(ID3D11CommandList, "a24bc4d1-769e-43f7-8013-98ff566c18e2") ); 1861 interface ID3D11CommandList : ID3D11DeviceChild 1862 { 1863 extern(Windows): 1864 UINT GetContextFlags(); 1865 } 1866 1867 1868 alias D3D11_FEATURE = int; 1869 enum : D3D11_FEATURE 1870 { 1871 D3D11_FEATURE_THREADING = 0, 1872 D3D11_FEATURE_DOUBLES = ( D3D11_FEATURE_THREADING + 1 ) , 1873 D3D11_FEATURE_FORMAT_SUPPORT = ( D3D11_FEATURE_DOUBLES + 1 ) , 1874 D3D11_FEATURE_FORMAT_SUPPORT2 = ( D3D11_FEATURE_FORMAT_SUPPORT + 1 ) , 1875 D3D11_FEATURE_D3D10_X_HARDWARE_OPTIONS = ( D3D11_FEATURE_FORMAT_SUPPORT2 + 1 ) 1876 } 1877 1878 struct D3D11_FEATURE_DATA_THREADING 1879 { 1880 BOOL DriverConcurrentCreates; 1881 BOOL DriverCommandLists; 1882 } 1883 1884 struct D3D11_FEATURE_DATA_DOUBLES 1885 { 1886 BOOL DoublePrecisionFloatShaderOps; 1887 } 1888 1889 struct D3D11_FEATURE_DATA_FORMAT_SUPPORT 1890 { 1891 DXGI_FORMAT InFormat; 1892 UINT OutFormatSupport; 1893 } 1894 1895 struct D3D11_FEATURE_DATA_FORMAT_SUPPORT2 1896 { 1897 DXGI_FORMAT InFormat; 1898 UINT OutFormatSupport2; 1899 } 1900 1901 struct D3D11_FEATURE_DATA_D3D10_X_HARDWARE_OPTIONS 1902 { 1903 BOOL ComputeShaders_Plus_RawAndStructuredBuffers_Via_Shader_4_x; 1904 } 1905 1906 1907 mixin( uuid!(ID3D11DeviceContext, "c0bfa96c-e089-44fb-8eaf-26f8796190da") ); 1908 interface ID3D11DeviceContext : ID3D11DeviceChild 1909 { 1910 extern(Windows): 1911 void VSSetConstantBuffers( 1912 UINT StartSlot, 1913 UINT NumBuffers, 1914 const(ID3D11Buffer)* ppConstantBuffers); 1915 1916 void PSSetShaderResources( 1917 UINT StartSlot, 1918 UINT NumViews, 1919 const(ID3D11ShaderResourceView)* ppShaderResourceViews); 1920 1921 void PSSetShader( 1922 ID3D11PixelShader pPixelShader, 1923 const(ID3D11ClassInstance)* ppClassInstances, 1924 UINT NumClassInstances); 1925 1926 void PSSetSamplers( 1927 UINT StartSlot, 1928 UINT NumSamplers, 1929 const(ID3D11SamplerState)* ppSamplers); 1930 1931 void VSSetShader( 1932 ID3D11VertexShader pVertexShader, 1933 const(ID3D11ClassInstance)* ppClassInstances, 1934 UINT NumClassInstances); 1935 1936 void DrawIndexed( 1937 UINT IndexCount, 1938 UINT StartIndexLocation, 1939 INT BaseVertexLocation); 1940 1941 void Draw( 1942 UINT VertexCount, 1943 UINT StartVertexLocation); 1944 1945 HRESULT Map( 1946 ID3D11Resource pResource, 1947 UINT Subresource, 1948 D3D11_MAP MapType, 1949 UINT MapFlags, 1950 D3D11_MAPPED_SUBRESOURCE* pMappedResource); 1951 1952 void Unmap( 1953 ID3D11Resource pResource, 1954 UINT Subresource); 1955 1956 void PSSetConstantBuffers( 1957 UINT StartSlot, 1958 UINT NumBuffers, 1959 const(ID3D11Buffer)* ppConstantBuffers); 1960 1961 void IASetInputLayout( 1962 ID3D11InputLayout pInputLayout); 1963 1964 void IASetVertexBuffers( 1965 UINT StartSlot, 1966 UINT NumBuffers, 1967 const(ID3D11Buffer)* ppVertexBuffers, 1968 const(UINT)* pStrides, 1969 const(UINT)* pOffsets); 1970 1971 void IASetIndexBuffer( 1972 ID3D11Buffer pIndexBuffer, 1973 DXGI_FORMAT Format, 1974 UINT Offset); 1975 1976 void DrawIndexedInstanced( 1977 UINT IndexCountPerInstance, 1978 UINT InstanceCount, 1979 UINT StartIndexLocation, 1980 INT BaseVertexLocation, 1981 UINT StartInstanceLocation); 1982 1983 void DrawInstanced( 1984 UINT VertexCountPerInstance, 1985 UINT InstanceCount, 1986 UINT StartVertexLocation, 1987 UINT StartInstanceLocation); 1988 1989 void GSSetConstantBuffers( 1990 UINT StartSlot, 1991 UINT NumBuffers, 1992 const(ID3D11Buffer)* ppConstantBuffers); 1993 1994 void GSSetShader( 1995 ID3D11GeometryShader pShader, 1996 const(ID3D11ClassInstance)* ppClassInstances, 1997 UINT NumClassInstances); 1998 1999 void IASetPrimitiveTopology( 2000 D3D11_PRIMITIVE_TOPOLOGY Topology); 2001 2002 void VSSetShaderResources( 2003 UINT StartSlot, 2004 UINT NumViews, 2005 const(ID3D11ShaderResourceView)* ppShaderResourceViews); 2006 2007 void VSSetSamplers( 2008 UINT StartSlot, 2009 UINT NumSamplers, 2010 const(ID3D11SamplerState)* ppSamplers); 2011 2012 void Begin( 2013 ID3D11Asynchronous pAsync); 2014 2015 void End( 2016 ID3D11Asynchronous pAsync); 2017 2018 HRESULT GetData( 2019 ID3D11Asynchronous pAsync, 2020 void* pData, 2021 UINT DataSize, 2022 UINT GetDataFlags); 2023 2024 void SetPredication( 2025 ID3D11Predicate pPredicate, 2026 BOOL PredicateValue); 2027 2028 void GSSetShaderResources( 2029 UINT StartSlot, 2030 UINT NumViews, 2031 const(ID3D11ShaderResourceView)* ppShaderResourceViews); 2032 2033 void GSSetSamplers( 2034 UINT StartSlot, 2035 UINT NumSamplers, 2036 const(ID3D11SamplerState)* ppSamplers); 2037 2038 void OMSetRenderTargets( 2039 UINT NumViews, 2040 const(ID3D11RenderTargetView)* ppRenderTargetViews, 2041 ID3D11DepthStencilView pDepthStencilView); 2042 2043 void OMSetRenderTargetsAndUnorderedAccessViews( 2044 UINT NumRTVs, 2045 const(ID3D11RenderTargetView)* ppRenderTargetViews, 2046 ID3D11DepthStencilView pDepthStencilView, 2047 UINT UAVStartSlot, 2048 UINT NumUAVs, 2049 const(ID3D11UnorderedAccessView)* ppUnorderedAccessViews, 2050 const(UINT)* pUAVInitialCounts); 2051 2052 void OMSetBlendState( 2053 ID3D11BlendState pBlendState, 2054 FLOAT* BlendFactor, //FLOAT[ 4 ] BlendFactor 2055 UINT SampleMask); 2056 2057 void OMSetDepthStencilState( 2058 ID3D11DepthStencilState pDepthStencilState, 2059 UINT StencilRef); 2060 2061 void SOSetTargets( 2062 UINT NumBuffers, 2063 const(ID3D11Buffer)* ppSOTargets, 2064 const(UINT)* pOffsets); 2065 2066 void DrawAuto(); 2067 2068 void DrawIndexedInstancedIndirect( 2069 ID3D11Buffer pBufferForArgs, 2070 UINT AlignedByteOffsetForArgs); 2071 2072 void DrawInstancedIndirect( 2073 ID3D11Buffer pBufferForArgs, 2074 UINT AlignedByteOffsetForArgs); 2075 2076 void Dispatch( 2077 UINT ThreadGroupCountX, 2078 UINT ThreadGroupCountY, 2079 UINT ThreadGroupCountZ); 2080 2081 void DispatchIndirect( 2082 ID3D11Buffer pBufferForArgs, 2083 UINT AlignedByteOffsetForArgs); 2084 2085 void RSSetState( 2086 ID3D11RasterizerState pRasterizerState); 2087 2088 void RSSetViewports( 2089 UINT NumViewports, 2090 const(D3D11_VIEWPORT)* pViewports); 2091 2092 void RSSetScissorRects( 2093 UINT NumRects, 2094 const(D3D11_RECT)* pRects); 2095 2096 void CopySubresourceRegion( 2097 ID3D11Resource pDstResource, 2098 UINT DstSubresource, 2099 UINT DstX, 2100 UINT DstY, 2101 UINT DstZ, 2102 ID3D11Resource pSrcResource, 2103 UINT SrcSubresource, 2104 const(D3D11_BOX)* pSrcBox); 2105 2106 void CopyResource( 2107 ID3D11Resource pDstResource, 2108 ID3D11Resource pSrcResource); 2109 2110 void UpdateSubresource( 2111 ID3D11Resource pDstResource, 2112 UINT DstSubresource, 2113 const(D3D11_BOX)* pDstBox, 2114 const void* pSrcData, 2115 UINT SrcRowPitch, 2116 UINT SrcDepthPitch); 2117 2118 void CopyStructureCount( 2119 ID3D11Buffer pDstBuffer, 2120 UINT DstAlignedByteOffset, 2121 ID3D11UnorderedAccessView pSrcView); 2122 2123 void ClearRenderTargetView( 2124 ID3D11RenderTargetView pRenderTargetView, 2125 FLOAT* ColorRGBA); //FLOAT[ 4 ] ColorRGBA); 2126 2127 void ClearUnorderedAccessViewUint( 2128 ID3D11UnorderedAccessView pUnorderedAccessView, 2129 UINT* Values); //UINT[ 4 ] Values); 2130 2131 void ClearUnorderedAccessViewFloat( 2132 ID3D11UnorderedAccessView pUnorderedAccessView, 2133 FLOAT* Values); //FLOAT[ 4 ] Values); 2134 2135 void ClearDepthStencilView( 2136 ID3D11DepthStencilView pDepthStencilView, 2137 UINT ClearFlags, 2138 FLOAT Depth, 2139 UINT8 Stencil); 2140 2141 void GenerateMips( 2142 ID3D11ShaderResourceView pShaderResourceView); 2143 2144 void SetResourceMinLOD( 2145 ID3D11Resource pResource, 2146 FLOAT MinLOD); 2147 2148 FLOAT GetResourceMinLOD( 2149 ID3D11Resource pResource); 2150 2151 void ResolveSubresource( 2152 ID3D11Resource pDstResource, 2153 UINT DstSubresource, 2154 ID3D11Resource pSrcResource, 2155 UINT SrcSubresource, 2156 DXGI_FORMAT Format); 2157 2158 void ExecuteCommandList( 2159 ID3D11CommandList pCommandList, 2160 BOOL RestoreContextState); 2161 2162 void HSSetShaderResources( 2163 UINT StartSlot, 2164 UINT NumViews, 2165 const(ID3D11ShaderResourceView)* ppShaderResourceViews); 2166 2167 void HSSetShader( 2168 ID3D11HullShader pHullShader, 2169 const(ID3D11ClassInstance)* ppClassInstances, 2170 UINT NumClassInstances); 2171 2172 void HSSetSamplers( 2173 UINT StartSlot, 2174 UINT NumSamplers, 2175 const(ID3D11SamplerState)* ppSamplers); 2176 2177 void HSSetConstantBuffers( 2178 UINT StartSlot, 2179 UINT NumBuffers, 2180 const(ID3D11Buffer)* ppConstantBuffers); 2181 2182 void DSSetShaderResources( 2183 UINT StartSlot, 2184 UINT NumViews, 2185 const(ID3D11ShaderResourceView)* ppShaderResourceViews); 2186 2187 void DSSetShader( 2188 ID3D11DomainShader pDomainShader, 2189 const(ID3D11ClassInstance)* ppClassInstances, 2190 UINT NumClassInstances); 2191 2192 void DSSetSamplers( 2193 UINT StartSlot, 2194 UINT NumSamplers, 2195 const(ID3D11SamplerState)* ppSamplers); 2196 2197 void DSSetConstantBuffers( 2198 UINT StartSlot, 2199 UINT NumBuffers, 2200 const(ID3D11Buffer)* ppConstantBuffers); 2201 2202 void CSSetShaderResources( 2203 UINT StartSlot, 2204 UINT NumViews, 2205 const(ID3D11ShaderResourceView)* ppShaderResourceViews); 2206 2207 void CSSetUnorderedAccessViews( 2208 UINT StartSlot, 2209 UINT NumUAVs, 2210 const(ID3D11UnorderedAccessView)* ppUnorderedAccessViews, 2211 const(UINT)* pUAVInitialCounts); 2212 2213 void CSSetShader( 2214 ID3D11ComputeShader pComputeShader, 2215 const(ID3D11ClassInstance)* ppClassInstances, 2216 UINT NumClassInstances); 2217 2218 void CSSetSamplers( 2219 UINT StartSlot, 2220 UINT NumSamplers, 2221 const(ID3D11SamplerState)* ppSamplers); 2222 2223 void CSSetConstantBuffers( 2224 UINT StartSlot, 2225 UINT NumBuffers, 2226 const(ID3D11Buffer)* ppConstantBuffers); 2227 2228 void VSGetConstantBuffers( 2229 UINT StartSlot, 2230 UINT NumBuffers, 2231 ID3D11Buffer* ppConstantBuffers); 2232 2233 void PSGetShaderResources( 2234 UINT StartSlot, 2235 UINT NumViews, 2236 ID3D11ShaderResourceView* ppShaderResourceViews); 2237 2238 void PSGetShader( 2239 ID3D11PixelShader* ppPixelShader, 2240 const(ID3D11ClassInstance)* ppClassInstances, 2241 UINT* pNumClassInstances); 2242 2243 void PSGetSamplers( 2244 UINT StartSlot, 2245 UINT NumSamplers, 2246 ID3D11SamplerState* ppSamplers); 2247 2248 void VSGetShader( 2249 ID3D11VertexShader* ppVertexShader, 2250 const(ID3D11ClassInstance)* ppClassInstances, 2251 UINT* pNumClassInstances); 2252 2253 void PSGetConstantBuffers( 2254 UINT StartSlot, 2255 UINT NumBuffers, 2256 ID3D11Buffer* ppConstantBuffers); 2257 2258 void IAGetInputLayout( 2259 ID3D11InputLayout* ppInputLayout); 2260 2261 void IAGetVertexBuffers( 2262 UINT StartSlot, 2263 UINT NumBuffers, 2264 ID3D11Buffer* ppVertexBuffers, 2265 UINT* pStrides, 2266 UINT* pOffsets); 2267 2268 void IAGetIndexBuffer( 2269 ID3D11Buffer* pIndexBuffer, 2270 DXGI_FORMAT* Format, 2271 UINT* Offset); 2272 2273 void GSGetConstantBuffers( 2274 UINT StartSlot, 2275 UINT NumBuffers, 2276 ID3D11Buffer* ppConstantBuffers); 2277 2278 void GSGetShader( 2279 ID3D11GeometryShader* ppGeometryShader, 2280 const(ID3D11ClassInstance)* ppClassInstances, 2281 UINT* pNumClassInstances); 2282 2283 void IAGetPrimitiveTopology( 2284 D3D11_PRIMITIVE_TOPOLOGY* pTopology); 2285 2286 void VSGetShaderResources( 2287 UINT StartSlot, 2288 UINT NumViews, 2289 ID3D11ShaderResourceView* ppShaderResourceViews); 2290 2291 void VSGetSamplers( 2292 UINT StartSlot, 2293 UINT NumSamplers, 2294 ID3D11SamplerState* ppSamplers); 2295 2296 void GetPredication( 2297 ID3D11Predicate* ppPredicate, 2298 BOOL* pPredicateValue); 2299 2300 void GSGetShaderResources( 2301 UINT StartSlot, 2302 UINT NumViews, 2303 ID3D11ShaderResourceView* ppShaderResourceViews); 2304 2305 void GSGetSamplers( 2306 UINT StartSlot, 2307 UINT NumSamplers, 2308 ID3D11SamplerState* ppSamplers); 2309 2310 void OMGetRenderTargets( 2311 UINT NumViews, 2312 ID3D11RenderTargetView* ppRenderTargetViews, 2313 ID3D11DepthStencilView* ppDepthStencilView); 2314 2315 void OMGetRenderTargetsAndUnorderedAccessViews( 2316 UINT NumRTVs, 2317 ID3D11RenderTargetView* ppRenderTargetViews, 2318 ID3D11DepthStencilView* ppDepthStencilView, 2319 UINT UAVStartSlot, 2320 UINT NumUAVs, 2321 ID3D11UnorderedAccessView* ppUnorderedAccessViews); 2322 2323 void OMGetBlendState( 2324 ID3D11BlendState* ppBlendState, 2325 FLOAT* BlendFactor, //FLOAT[ 4 ] BlendFactor, 2326 UINT* pSampleMask); 2327 2328 void OMGetDepthStencilState( 2329 ID3D11DepthStencilState* ppDepthStencilState, 2330 UINT* pStencilRef); 2331 2332 void SOGetTargets( 2333 UINT NumBuffers, 2334 ID3D11Buffer* ppSOTargets); 2335 2336 void RSGetState( 2337 ID3D11RasterizerState* ppRasterizerState); 2338 2339 void RSGetViewports( 2340 UINT* pNumViewports, 2341 D3D11_VIEWPORT* pViewports); 2342 2343 void RSGetScissorRects( 2344 UINT* pNumRects, 2345 D3D11_RECT* pRects); 2346 2347 void HSGetShaderResources( 2348 UINT StartSlot, 2349 UINT NumViews, 2350 ID3D11ShaderResourceView* ppShaderResourceViews); 2351 2352 void HSGetShader( 2353 ID3D11HullShader* ppHullShader, 2354 ID3D11ClassInstance* ppClassInstances, 2355 UINT* pNumClassInstances); 2356 2357 void HSGetSamplers( 2358 UINT StartSlot, 2359 UINT NumSamplers, 2360 ID3D11SamplerState* ppSamplers); 2361 2362 void HSGetConstantBuffers( 2363 UINT StartSlot, 2364 UINT NumBuffers, 2365 ID3D11Buffer* ppConstantBuffers); 2366 2367 void DSGetShaderResources( 2368 UINT StartSlot, 2369 UINT NumViews, 2370 ID3D11ShaderResourceView* ppShaderResourceViews); 2371 2372 void DSGetShader( 2373 ID3D11DomainShader* ppDomainShader, 2374 ID3D11ClassInstance* ppClassInstances, 2375 UINT* pNumClassInstances); 2376 2377 void DSGetSamplers( 2378 UINT StartSlot, 2379 UINT NumSamplers, 2380 ID3D11SamplerState* ppSamplers); 2381 2382 void DSGetConstantBuffers( 2383 UINT StartSlot, 2384 UINT NumBuffers, 2385 ID3D11Buffer* ppConstantBuffers); 2386 2387 void CSGetShaderResources( 2388 UINT StartSlot, 2389 UINT NumViews, 2390 ID3D11ShaderResourceView* ppShaderResourceViews); 2391 2392 void CSGetUnorderedAccessViews( 2393 UINT StartSlot, 2394 UINT NumUAVs, 2395 ID3D11UnorderedAccessView* ppUnorderedAccessViews); 2396 2397 void CSGetShader( 2398 ID3D11ComputeShader* ppComputeShader, 2399 ID3D11ClassInstance* ppClassInstances, 2400 UINT* pNumClassInstances); 2401 2402 void CSGetSamplers( 2403 UINT StartSlot, 2404 UINT NumSamplers, 2405 ID3D11SamplerState* ppSamplers); 2406 2407 void CSGetConstantBuffers( 2408 UINT StartSlot, 2409 UINT NumBuffers, 2410 ID3D11Buffer* ppConstantBuffers); 2411 2412 void ClearState(); 2413 2414 void Flush(); 2415 2416 D3D11_DEVICE_CONTEXT_TYPE GetType(); 2417 2418 UINT GetContextFlags(); 2419 2420 HRESULT FinishCommandList( 2421 BOOL RestoreDeferredContextState, 2422 ID3D11CommandList* ppCommandList); 2423 } 2424 2425 2426 mixin( uuid!(ID3D11Device, "db6f6ddb-ac77-4e88-8253-819df9bbf140") ); 2427 interface ID3D11Device : IUnknown 2428 { 2429 extern(Windows): 2430 HRESULT CreateBuffer( 2431 const(D3D11_BUFFER_DESC)* pDesc, 2432 const(D3D11_SUBRESOURCE_DATA)* pInitialData, 2433 ID3D11Buffer* ppBuffer); 2434 2435 HRESULT CreateTexture1D( 2436 const(D3D11_TEXTURE1D_DESC)* pDesc, 2437 const(D3D11_SUBRESOURCE_DATA)* pInitialData, 2438 ID3D11Texture1D* ppTexture1D); 2439 2440 HRESULT CreateTexture2D( 2441 const(D3D11_TEXTURE2D_DESC)* pDesc, 2442 const(D3D11_SUBRESOURCE_DATA)* pInitialData, 2443 ID3D11Texture2D* ppTexture2D); 2444 2445 HRESULT CreateTexture3D( 2446 const(D3D11_TEXTURE3D_DESC)* pDesc, 2447 const(D3D11_SUBRESOURCE_DATA)* pInitialData, 2448 ID3D11Texture3D* ppTexture3D); 2449 2450 HRESULT CreateShaderResourceView( 2451 ID3D11Resource pResource, 2452 const(D3D11_SHADER_RESOURCE_VIEW_DESC)* pDesc, 2453 ID3D11ShaderResourceView* ppSRView); 2454 2455 HRESULT CreateUnorderedAccessView( 2456 ID3D11Resource pResource, 2457 const(D3D11_UNORDERED_ACCESS_VIEW_DESC)* pDesc, 2458 ID3D11UnorderedAccessView* ppUAView); 2459 2460 HRESULT CreateRenderTargetView( 2461 ID3D11Resource pResource, 2462 const(D3D11_RENDER_TARGET_VIEW_DESC)* pDesc, 2463 ID3D11RenderTargetView* ppRTView); 2464 2465 HRESULT CreateDepthStencilView( 2466 ID3D11Resource pResource, 2467 const(D3D11_DEPTH_STENCIL_VIEW_DESC)* pDesc, 2468 ID3D11DepthStencilView* ppDepthStencilView); 2469 2470 HRESULT CreateInputLayout( 2471 const(D3D11_INPUT_ELEMENT_DESC)* pInputElementDescs, 2472 UINT NumElements, 2473 const void* pShaderBytecodeWithInputSignature, 2474 SIZE_T BytecodeLength, 2475 ID3D11InputLayout* ppInputLayout); 2476 2477 HRESULT CreateVertexShader( 2478 const void* pShaderBytecode, 2479 SIZE_T BytecodeLength, 2480 ID3D11ClassLinkage pClassLinkage, 2481 ID3D11VertexShader* ppVertexShader); 2482 2483 HRESULT CreateGeometryShader( 2484 const void* pShaderBytecode, 2485 SIZE_T BytecodeLength, 2486 ID3D11ClassLinkage pClassLinkage, 2487 ID3D11GeometryShader* ppGeometryShader); 2488 2489 HRESULT CreateGeometryShaderWithStreamOutput( 2490 const void* pShaderBytecode, 2491 SIZE_T BytecodeLength, 2492 const(D3D11_SO_DECLARATION_ENTRY)* pSODeclaration, 2493 UINT NumEntries, 2494 const(UINT)* pBufferStrides, 2495 UINT NumStrides, 2496 UINT RasterizedStream, 2497 ID3D11ClassLinkage pClassLinkage, 2498 ID3D11GeometryShader* ppGeometryShader); 2499 2500 HRESULT CreatePixelShader( 2501 const void* pShaderBytecode, 2502 SIZE_T BytecodeLength, 2503 ID3D11ClassLinkage pClassLinkage, 2504 ID3D11PixelShader* ppPixelShader); 2505 2506 HRESULT CreateHullShader( 2507 const void* pShaderBytecode, 2508 SIZE_T BytecodeLength, 2509 ID3D11ClassLinkage pClassLinkage, 2510 ID3D11HullShader* ppHullShader); 2511 2512 HRESULT CreateDomainShader( 2513 const void* pShaderBytecode, 2514 SIZE_T BytecodeLength, 2515 ID3D11ClassLinkage pClassLinkage, 2516 ID3D11DomainShader* ppDomainShader); 2517 2518 HRESULT CreateComputeShader( 2519 const void* pShaderBytecode, 2520 SIZE_T BytecodeLength, 2521 ID3D11ClassLinkage pClassLinkage, 2522 ID3D11ComputeShader* ppComputeShader); 2523 2524 HRESULT CreateClassLinkage( 2525 ID3D11ClassLinkage* ppLinkage); 2526 2527 HRESULT CreateBlendState( 2528 const(D3D11_BLEND_DESC)* pBlendStateDesc, 2529 ID3D11BlendState* ppBlendState); 2530 2531 HRESULT CreateDepthStencilState( 2532 const(D3D11_DEPTH_STENCIL_DESC)* pDepthStencilDesc, 2533 ID3D11DepthStencilState* ppDepthStencilState); 2534 2535 HRESULT CreateRasterizerState( 2536 const(D3D11_RASTERIZER_DESC)* pRasterizerDesc, 2537 ID3D11RasterizerState* ppRasterizerState); 2538 2539 HRESULT CreateSamplerState( 2540 const(D3D11_SAMPLER_DESC)* pSamplerDesc, 2541 ID3D11SamplerState* ppSamplerState); 2542 2543 HRESULT CreateQuery( 2544 const(D3D11_QUERY_DESC)* pQueryDesc, 2545 ID3D11Query* ppQuery); 2546 2547 HRESULT CreatePredicate( 2548 const(D3D11_QUERY_DESC)* pPredicateDesc, 2549 ID3D11Predicate* ppPredicate); 2550 2551 HRESULT CreateCounter( 2552 const(D3D11_COUNTER_DESC)* pCounterDesc, 2553 ID3D11Counter* ppCounter); 2554 2555 HRESULT CreateDeferredContext( 2556 UINT ContextFlags, 2557 ID3D11DeviceContext* ppDeferredContext); 2558 2559 HRESULT OpenSharedResource( 2560 HANDLE hResource, 2561 REFIID ReturnedInterface, 2562 void** ppResource); 2563 2564 HRESULT CheckFormatSupport( 2565 DXGI_FORMAT Format, 2566 UINT* pFormatSupport); 2567 2568 HRESULT CheckMultisampleQualityLevels( 2569 DXGI_FORMAT Format, 2570 UINT SampleCount, 2571 UINT* pNumQualityLevels); 2572 2573 void CheckCounterInfo( 2574 D3D11_COUNTER_INFO *pCounterInfo); 2575 2576 HRESULT CheckCounter( 2577 const(D3D11_COUNTER_DESC)* pDesc, 2578 D3D11_COUNTER_TYPE* pType, 2579 UINT* pActiveCounters, 2580 LPSTR szName, 2581 UINT* pNameLength, 2582 LPSTR szUnits, 2583 UINT* pUnitsLength, 2584 LPSTR szDescription, 2585 UINT* pDescriptionLength); 2586 2587 HRESULT CheckFeatureSupport( 2588 D3D11_FEATURE Feature, 2589 void* pFeatureSupportData, 2590 UINT FeatureSupportDataSize); 2591 2592 HRESULT GetPrivateData( 2593 REFGUID guid, 2594 UINT* pDataSize, 2595 void* pData); 2596 2597 HRESULT SetPrivateData( 2598 REFGUID guid, 2599 UINT DataSize, 2600 const void* pData); 2601 2602 HRESULT SetPrivateDataInterface( 2603 REFGUID guid, 2604 const IUnknown pData); 2605 2606 D3D_FEATURE_LEVEL GetFeatureLevel(); 2607 2608 UINT GetCreationFlags(); 2609 2610 HRESULT GetDeviceRemovedReason(); 2611 2612 void GetImmediateContext( 2613 ID3D11DeviceContext* ppImmediateContext); 2614 2615 HRESULT SetExceptionMode( 2616 UINT RaiseFlags); 2617 2618 UINT GetExceptionMode(); 2619 } 2620 2621 alias D3D11_CREATE_DEVICE_FLAG = int; 2622 enum : D3D11_CREATE_DEVICE_FLAG 2623 { 2624 D3D11_CREATE_DEVICE_SINGLETHREADED = 0x1, 2625 D3D11_CREATE_DEVICE_DEBUG = 0x2, 2626 D3D11_CREATE_DEVICE_SWITCH_TO_REF = 0x4, 2627 D3D11_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS = 0x8, 2628 D3D11_CREATE_DEVICE_BGRA_SUPPORT = 0x20 2629 } 2630 2631 enum D3D11_SDK_VERSION = ( 7 ); 2632 2633 /////////////////////////////////////////////////////////////////////////// 2634 // D3D11CreateDevice 2635 // ------------------ 2636 // 2637 // pAdapter 2638 // If NULL, D3D11CreateDevice will choose the primary adapter and 2639 // create a new instance from a temporarily created IDXGIFactory. 2640 // If non-NULL, D3D11CreateDevice will register the appropriate 2641 // device, if necessary (via IDXGIAdapter::RegisterDrver), before 2642 // creating the device. 2643 // DriverType 2644 // Specifies the driver type to be created: hardware, reference or 2645 // null. 2646 // Software 2647 // HMODULE of a DLL implementing a software rasterizer. Must be NULL for 2648 // non-Software driver types. 2649 // Flags 2650 // Any of those documented for D3D11CreateDeviceAndSwapChain. 2651 // pFeatureLevels 2652 // Any of those documented for D3D11CreateDeviceAndSwapChain. 2653 // FeatureLevels 2654 // Size of feature levels array. 2655 // SDKVersion 2656 // SDK version. Use the D3D11_SDK_VERSION macro. 2657 // ppDevice 2658 // Pointer to returned interface. May be NULL. 2659 // pFeatureLevel 2660 // Pointer to returned feature level. May be NULL. 2661 // ppImmediateContext 2662 // Pointer to returned interface. May be NULL. 2663 // 2664 // Return Values 2665 // Any of those documented for 2666 // CreateDXGIFactory1 2667 // IDXGIFactory::EnumAdapters 2668 // IDXGIAdapter::RegisterDriver 2669 // D3D11CreateDevice 2670 // 2671 /////////////////////////////////////////////////////////////////////////// 2672 extern (Windows) nothrow 2673 HRESULT D3D11CreateDevice(IDXGIAdapter pAdapter, 2674 D3D_DRIVER_TYPE DriverType, 2675 HMODULE Software, 2676 UINT Flags, 2677 const(D3D_FEATURE_LEVEL)* pFeatureLevels, 2678 UINT FeatureLevels, 2679 UINT SDKVersion, 2680 ID3D11Device *ppDevice, 2681 D3D_FEATURE_LEVEL *pFeatureLevel, 2682 ID3D11DeviceContext *ppImmediateContext); 2683 2684 2685 alias PFN_D3D11_CREATE_DEVICE = extern (Windows) nothrow HRESULT function(IDXGIAdapter pAdapter, 2686 D3D_DRIVER_TYPE DriverType, 2687 HMODULE Software, 2688 UINT Flags, 2689 const(D3D_FEATURE_LEVEL)* pFeatureLevels, 2690 UINT FeatureLevels, 2691 UINT SDKVersion, 2692 ID3D11Device *ppDevice, 2693 D3D_FEATURE_LEVEL *pFeatureLevel, 2694 ID3D11DeviceContext *ppImmediateContext); 2695 2696 /////////////////////////////////////////////////////////////////////////// 2697 // D3D11CreateDeviceAndSwapChain 2698 // ------------------------------ 2699 // 2700 // ppAdapter 2701 // If NULL, D3D11CreateDevice will choose the primary adapter and 2702 // create a new instance from a temporarily created IDXGIFactory. 2703 // If non-NULL, D3D11CreateDevice will register the appropriate 2704 // device, if necessary (via IDXGIAdapter::RegisterDrver), before 2705 // creating the device. 2706 // DriverType 2707 // Specifies the driver type to be created: hardware, reference or 2708 // null. 2709 // Software 2710 // HMODULE of a DLL implementing a software rasterizer. Must be NULL for 2711 // non-Software driver types. 2712 // Flags 2713 // Any of those documented for D3D11CreateDevice. 2714 // pFeatureLevels 2715 // Array of any of the following: 2716 // D3D_FEATURE_LEVEL_11_0 2717 // D3D_FEATURE_LEVEL_10_1 2718 // D3D_FEATURE_LEVEL_10_0 2719 // D3D_FEATURE_LEVEL_9_3 2720 // D3D_FEATURE_LEVEL_9_2 2721 // D3D_FEATURE_LEVEL_9_1 2722 // Order indicates sequence in which instantiation will be attempted. If 2723 // NULL, then the implied order is the same as previously listed (i.e. 2724 // prefer most features available). 2725 // FeatureLevels 2726 // Size of feature levels array. 2727 // SDKVersion 2728 // SDK version. Use the D3D11_SDK_VERSION macro. 2729 // pSwapChainDesc 2730 // Swap chain description, may be NULL. 2731 // ppSwapChain 2732 // Pointer to returned interface. May be NULL. 2733 // ppDevice 2734 // Pointer to returned interface. May be NULL. 2735 // pFeatureLevel 2736 // Pointer to returned feature level. May be NULL. 2737 // ppImmediateContext 2738 // Pointer to returned interface. May be NULL. 2739 // 2740 // Return Values 2741 // Any of those documented for 2742 // CreateDXGIFactory1 2743 // IDXGIFactory::EnumAdapters 2744 // IDXGIAdapter::RegisterDriver 2745 // D3D11CreateDevice 2746 // IDXGIFactory::CreateSwapChain 2747 // 2748 /////////////////////////////////////////////////////////////////////////// 2749 2750 2751 extern(Windows) nothrow 2752 HRESULT D3D11CreateDeviceAndSwapChain( 2753 IDXGIAdapter pAdapter, 2754 D3D_DRIVER_TYPE DriverType, 2755 HMODULE Software, 2756 UINT Flags, 2757 const(D3D_FEATURE_LEVEL)* pFeatureLevels, 2758 UINT FeatureLevels, 2759 UINT SDKVersion, 2760 const(DXGI_SWAP_CHAIN_DESC)* pSwapChainDesc, 2761 IDXGISwapChain* ppSwapChain, 2762 ID3D11Device* ppDevice, 2763 D3D_FEATURE_LEVEL* pFeatureLevel, 2764 ID3D11DeviceContext* ppImmediateContext); 2765 2766 alias PFN_D3D11_CREATE_DEVICE_AND_SWAP_CHAIN = extern(Windows) nothrow HRESULT function( 2767 IDXGIAdapter pAdapter, 2768 D3D_DRIVER_TYPE DriverType, 2769 HMODULE Software, 2770 UINT Flags, 2771 const(D3D_FEATURE_LEVEL)* pFeatureLevels, 2772 UINT FeatureLevels, 2773 UINT SDKVersion, 2774 const(DXGI_SWAP_CHAIN_DESC)* pSwapChainDesc, 2775 IDXGISwapChain* ppSwapChain, 2776 ID3D11Device* ppDevice, 2777 D3D_FEATURE_LEVEL* pFeatureLevel, 2778 ID3D11DeviceContext* ppImmediateContext);